> 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/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4