Clarify the lack of relationship between rich comparison operators.

Prompted by a discussion on comp.lang.python.
This commit is contained in:
Raymond Hettinger 2003-07-16 19:40:23 +00:00
parent 71adf7e9d8
commit 4d6e8fe5d1

View file

@ -1089,6 +1089,11 @@ used in a Boolean context, the return value should be interpretable as
a Boolean value, else a \exception{TypeError} will be raised. a Boolean value, else a \exception{TypeError} will be raised.
By convention, \code{False} is used for false and \code{True} for true. By convention, \code{False} is used for false and \code{True} for true.
There are no implied relationships among the comparison operators.
The truth of {\var{x}==\var{y}} does not imply that \code{\var{x}!=\var{y}}
is false. Accordingly, when defining \method{__eq__}, one should also
define \method{__ne__} so that the operators will behave as expected.
There are no reflected (swapped-argument) versions of these methods There are no reflected (swapped-argument) versions of these methods
(to be used when the left argument does not support the operation but (to be used when the left argument does not support the operation but
the right argument does); rather, \method{__lt__()} and the right argument does); rather, \method{__lt__()} and