Chris Rebert wrote:
On Sat, Aug 15, 2009 at 8:09 AM, Xavier Ho<cont...@xavierho.com> wrote:
Hey all,

I've recently made my way to Python 3.1 and I'm not seeing __cmp__() in the
documentation.

Is there a substitution for this special method in 3.1, or do I really have
to define all six rich comparison methods to work it out?

I don't think so. Quoting
http://docs.python.org/dev/py3k/reference/datamodel.html

"There are no swapped-argument versions of [the comparison] methods
(to be used when the left argument does not support the operation but
the right argument does); rather, __lt__() and __gt__() are each
other’s reflection, __le__() and __ge__() are each other’s reflection,
and __eq__() and __ne__() are their own reflection."

I believe this means you only need to define one method from each of
the following pairs to get all the operators working:
* __eq__ or __ne__
* __lt__ or __gt__
* __ge__ or __le__

Cheers,
Chris
Unfortunately I don't think it's that easy, see.
http://mail.python.org/pipermail/python-list/2008-November/688761.html
The issue referenced is still open. This of course assumes that I've posted the correct link this time!

--
Kindest regards.

Mark Lawrence.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to