[Python-3000] Total ordering and __cmp__

Guido van Rossum guido at python.org
Wed Mar 21 02:30:40 CET 2007


I haven't taken any action, and it looks like __cmp__ isn't being
called. I'd rather not add it back; if you want it back, could you at
least write up a brief PEP? A patch would also help; I recall that it
was quite a relief being able to cut it out, so I expect that patching
it back in would be quite cumbersome.

--Guido

On 3/20/07, Collin Winter <collinw at gmail.com> wrote:
> Quoting from the commit message for r51533, which removed the default ordering:
>
> """
> A general problem with getting lots of these tests to pass is
> the reality that for object types that have a natural total ordering,
> implementing __cmp__ is much more convenient than implementing
> __eq__, __ne__, __lt__, and so on.  Should we go back to allowing
> __cmp__ to provide a total ordering?  Should we provide some other
> way to implement rich comparison with a single method override?
> Alex proposed a __key__() method; I've considered a __richcmp__()
> method.  Or perhaps __cmp__() just shouldn't be killed off...
> """
>
> What's the status on this? FWIW, I would like to see __cmp__ stay as a
> fallback measure if __eq__, __ne__, __lt__, etc aren't defined for
> total ordering purposes. I've run across this while trying to get the
> docs toolchain working, and I was initially shocked that __cmp__ was
> no longer called.
>
> Collin Winter
> _______________________________________________
> Python-3000 mailing list
> Python-3000 at python.org
> http://mail.python.org/mailman/listinfo/python-3000
> Unsubscribe: http://mail.python.org/mailman/options/python-3000/guido%40python.org
>


-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-3000 mailing list