From: Raymond Hettinger Date: Wed, 16 Jul 2003 19:40:23 +0000 (+0000) Subject: Clarify the lack of relationship between rich comparison operators. X-Git-Tag: v2.3c1~39 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4d6e8fe5d13a313314550d7ebffafaf62dea1df2;p=thirdparty%2FPython%2Fcpython.git Clarify the lack of relationship between rich comparison operators. Prompted by a discussion on comp.lang.python. --- diff --git a/Doc/ref/ref3.tex b/Doc/ref/ref3.tex index 785a995aea2a..68d87b438a4f 100644 --- a/Doc/ref/ref3.tex +++ b/Doc/ref/ref3.tex @@ -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. 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 (to be used when the left argument does not support the operation but the right argument does); rather, \method{__lt__()} and