小编典典

我应该在Python中实现__ne__作为__eq__的否定吗?

python

我有一个我想覆盖该__eq__方法的类。我也应该重写该__ne__方法似乎很有意义。我应该这样__ne__否定实施,__eq__还是一个坏主意?

class A:

    def __init__(self, state):
        self.state = state

    def __eq__(self, other):
        return self.state == other.state

    def __ne__(self, other):
        return not self.__eq__(other)

阅读 215

收藏
2020-12-20

共1个答案

小编典典

是的,那很好。实际上,文档敦促您在定义__ne__时定义__eq__

比较运算符之间没有隐含的关系。的真相x==y并不意味着那x!=y 是错误的。因此,在定义时
__eq__(),还应该定义一个,__ne__()以便操作符能够按预期运行。

在很多情况下(例如这种情况),它__eq__与否的结果一样简单,但并不总是如此。

2020-12-20