[Python-3000] Total ordering and __cmp__
collinw at gmail.com
Wed Mar 21 02:10:14 CET 2007
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.
More information about the Python-3000