[Python-Dev] inline sort option
Guido van Rossum
guido at python.org
Thu Oct 16 14:03:26 EDT 2003
More information about the Python-Dev mailing list
Thu Oct 16 14:03:26 EDT 2003
- Previous message: [Python-Dev] inline sort option
- Next message: [Python-Dev] inline sort option
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
> Are you proposing something like: > > print mylist.sort(inplace=False) # prints a new, sorted list while > # leaving the original list intact > > > which would be implemented something like this: > > def inlinesort(alist, *args, **kwds): > newref = alist[:] > newref.sort(*args, **kwds) > return newref > > > If that is what you're after, I think it is a good idea. It avoids the > perils of mutating methods returning self. It is explicit and pleasing > to write: > > for elem in mylist.sort(inplace=False): > . . . > > It is extra nice in a list comprehension: > > peckingorder = [d.name for d in duck.sort(key=seniority, > inplace=False)] > > Instead of "inplace=False", an alternative is "inline=True". *If* we're going to consider this, I would recommend using a different method name rather than a keyword argument. Arguments whose value changes the return type present a problem for program analysis tools like type checkers (and IMO are also easily overseen by human readers). And, it's easier to write l.sorted() rather than l.sort(inline=True). --Guido van Rossum (home page: http://www.python.org/~guido/)
- Previous message: [Python-Dev] inline sort option
- Next message: [Python-Dev] inline sort option
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list