Andrew Purdea wrote:
> Hello!
> I can see that lists have implemented these methods in jython..
> But i can not find any documentation on this. It looks like python
> compares each element, and and when it finds a difference, it returns.
> Where can i find documenation on this?
In python 2.5 reference 3.4.1:
*__lt__*( self, other)
*__le__*( self, other)
*__eq__*( self, other)
*__ne__*( self, other)
*__gt__*( self, other)
*__ge__*( self, other)
New in version 2.1. These are the so-called ``rich comparison''
methods, and are called for comparison operators in preference to
__cmp__() below. The correspondence between operator symbols and
method names is as follows: |x<y| calls |x.__lt__(y)|, |x<=y| calls
|x.__le__(y)|, |x==y| calls |x.__eq__(y)|, |x!=y| and |x<>y| call
|x.__ne__(y)|, |x>y| calls |x.__gt__(y)|, and |x>=y| calls
|x.__ge__(y)|. These methods can return any value, but if the
comparison operator is used in a Boolean context, the return value
should be interpretable as a Boolean value, else a TypeError will be
raised. By convention, |False| is used for false and |True| for true.
There are no implied relationships among the comparison operators.
The truth of |x==y| does not imply that |x!=y| is false.
Accordingly, when defining __eq__(), one should also define __ne__()
so that the operators will behave as expected.
There are no reflected (swapped-argument) versions of these 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.
Arguments to rich comparison methods are never coerced. A rich
comparison method may return |NotImplemented| if it does not
implement the operation for a given pair of arguments.
> Will this behaviour remain in python for future releases?
I certainly hope so. A LOT of programs would suffer if not. I certainly
have not seen any PEPs that discuss replacing or eliminating these.
--
Bob Gailer
510-978-4454 Oakland, CA
919-636-4239 Chapel Hill, NC
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor