[Python-3000] Total ordering and __cmp__

Georg Brandl g.brandl at gmx.net
Wed Mar 21 21:52:20 CET 2007


Terry Reedy schrieb:
> "Georg Brandl" <g.brandl at gmx.net> wrote in message 
> news:etrj1a$l9a$1 at sea.gmane.org...
> | Yes, but dictionaries had an explicit ordering in dict_compare() which 
> was
> | deleted.
> 
> Is dict_compare something added in 2.5?  It is neither a builtin or dict 
> method in 2.4.

No, it is a C function in dictobject.c, in Python available as dict.__cmp__.

> In any case, this point is that dict ordering is as arbitrary as ordering, 
> for instance, a dict and a string.  Since Guido stopped the experiment of 
> totally ordering all objects when complex nums were added, consistency 
> suggests that all fake orderings be eliminated, leaving only the order of 
> numbers, characters, and sequences of comparable objects.

It was not really *that* arbitrary. There was a defined algorithm, and it
made some sense (at least for 1-item-dicts).

Georg



More information about the Python-3000 mailing list