Annoying behaviour of the != operator
Greg Ewing
greg at cosc.canterbury.ac.nz
Wed Jun 8 23:50:42 EDT 2005
Rocco Moretti wrote:
> The main problem is that Python is trying to stick at least three
> different concepts onto the same set of operators: equivalence (are
> these two objects the same?), ordering (in a sorted list, which comes
> first?), and mathematical "size".
A possible compromise would be to add a new special method,
such as __equal__, for use by == and != when there is no
__eq__ or __ne__. Then there would be three clearly separated
levels of comparison: (1) __cmp__ for ordering, (2) __equal__
for equivalence, (3) __eq__ etc. for unrestricted semantics.
> This gives the wacky world where
> "[(1,2), (3,4)].sort()" works, whereas "[1+2j, 3+4j].sort()" doesn't.
To solve that, I would suggest a fourth category of "arbitrary
ordering", but that's probably Py3k material.
--
Greg Ewing, Computer Science Dept,
University of Canterbury,
Christchurch, New Zealand
http://www.cosc.canterbury.ac.nz/~greg
More information about the Python-list
mailing list