[Python-Dev] total ordering. (original) (raw)

Jason Orendorff jason.orendorff at gmail.com
Thu May 18 21:34:30 CEST 2006


Vladimir,

Your examples seem to indicate that you've misunderstood the change that's proposed for Python 3000. Especially this:

On 5/17/06, Vladimir 'Yu' Stepanov <vys at renet.ru> wrote:

# BEGIN: Emulation python3000 if type(a) is not type(b) and ( not operator.isNumberType(a) or not operator.isNumberType(b) ): raise TypeError("python3000: not-comparable types", (a,b)) # END: Emulation python3000

Python 3000 will not do anything like this. It'll try a.cmp(b), and failing that b.cmp(a) (but imagine this using tp_ slots instead of actual Python method calls), and if both return NotImplemented, it'll throw a TypeError (rather than guess, which is what it does now).

There's a lot of legacy oddness in PyObject_RichCompare() and its many helper functions; presumably they'll delete some of that, but it won't be anything you care about.

Comparison with None should also continue to work as it does now, unless I missed something.

-j



More information about the Python-Dev mailing list