Would there be support for a more general cmp/__cmp__

Mikael Olofsson mikael at isy.liu.se
Thu Oct 20 05:26:49 EDT 2005


Antoon Pardon wrote:
> Op 2005-10-20, Duncan Booth schreef <duncan.booth at invalid.invalid>:
> 
>>Antoon Pardon wrote:
>>
>>
>>>The problem now is that the cmp protocol has no way to
>>>indicate two objects are incomparable, they are not
>>>equal but neither is one less or greater than the other.
>>
>>If that is the case then you implement __eq__ and __ne__ to return 
>>True/False and make cmp throw an exception. I don't see any need to extend 
>>the cmp protocol.
> 
> 
> That is not sufficient. There are domains where an order exists, but not
> a total order. So for some couples of elements it is possible to say
> one is less than the other, but not for all such couples.
> 
> Your solution wouldn't allow for such a case.

Wouldn't the full power of rich comparisons be enough? See section 3.3.1 
in Python Reference Manual:

     http://www.python.org/doc/2.4.2/ref/customization.html

See methods __lt__, __le__, __eq__, __ne__, __gt__, __ge__.

/MiO





More information about the Python-list mailing list