On 28/07/13 18:07, Alan Gauld wrote:
Comparison operators haven't depended on cmp() for a long time. You can
google "rich comparison operators" for more info:

https://duckduckgo.com/?q=rich%20comparison%20operators

I only read the first two but one question remains:
If cmp() is gone is __cmp__() still supported? I'm assuming it
must be for backward compatibility?

Not in Python 3, it's gone. In Python 3, you have to define all six the rich 
comparison methods __eq__ __ne__ __lt__ __gt__ __le__ __ge__ if you wish to 
support the comparison operators. There's a helper function in functools to 
help simplify the job:

@functools.total_ordering
class MyClass:
    ...


total_ordering will automatically fill in the missing comparison methods using 
rules like these:

"<=" is equivalent to "not >"
">=" is equivalent to "not <"
"!=" is equivalent to "not =="

"<=" is equivalent to "< or =="
">=" is equivalent to "> or =="



--
Steven
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to