I have a class where I want to override the
def __eq__(self, other):
return self.value == other.value
def __ne__(self, other):
return not self.__eq__(other)
Yes, that's perfectly fine. In fact, the documentation urges you to define
__ne__ when you define
There are no implied relationships among the comparison operators. The truth of
x==ydoes not imply that
x!=yis false. Accordingly, when defining
__eq__(), one should also define
__ne__()so that the operators will behave as expected.
In a lot of cases (such as this one), it will be as simple as negating the result of
__eq__, but not always.