[Python-ideas] __sort__ special member

Lefavor, Matthew (GSFC-582.0)[MICROTEL LLC] matthew.lefavor at nasa.gov
Fri Jul 20 18:54:43 CEST 2012


I'm confused: how is this related to the question of dictionary ordering? Calling sorted() on a dict orders all the keys as it stands right now. Arbitrary dictionary ordering is only an issue when iterating over a dictionary. That could already be solved by subclassing dict and overriding the __iter__ method to return the keys in some sort of order.

Matthew Lefavor


From: Mark Adam <dreamingforward at gmail.com<mailto:dreamingforward at gmail.com>>
Date: Friday, July 20, 2012 12:44 PM
To: "python-ideas at python.org<mailto:python-ideas at python.org>" <python-ideas at python.org<mailto:python-ideas at python.org>>
Subject: Re: [Python-ideas] __sort__ special member

On Fri, Jul 20, 2012 at 11:23 AM, Oleg Broytman <phd at phdru.name<mailto:phd at phdru.name>> wrote:
On Fri, Jul 20, 2012 at 06:11:52PM +0200, David Townshend <aquavitae69 at gmail.com<mailto:aquavitae69 at gmail.com>> wrote:
> I was quite surprised to find that nobody seems to have suggested this
> before, because it seems like an obvious idea. Basically, add a special
> method __sort__ which, if specified, is used when sorted() is called. I can
> think of two immediate use cases:
>
> 1. When an object wants sorted() to return something other than a list,
> e.g. dict.__sort__ could return an OrderedDict.
> 2. When there is a more efficient method of sorting a specific sequence.
> E.g. sorting a range object should be trivial.
>
> Is there some obvious reason why nobody has suggested this before?  Is it
> worth pursuing?

   Because it's too application-specific?

What are you talking about.  This would solve the issue of ordering for dicts that became contentious a few years ago.  If people don't like the arbitrary ordering, they can subclass it.

mark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20120720/c6ded7a8/attachment.html>


More information about the Python-ideas mailing list