__ne__是否使用重写的__eq__?

时间:2015-06-04 11:57:18

标签: python comparison equality

假设我有以下程序:

class A(object):                                                                                                                                                                                                                                                              
    def __eq__(self, other):
        return True

a0 = A() 
a1 = A() 
print a0 != a1

如果使用Python运行它,则输出为True。我的问题是

  1. __ne__方法未实现,Python是否属于默认方法?
  2. 如果Python属于默认方法以确定两个对象是否相等,那么它不应该调用__eq__然后否定结果吗?

1 个答案:

答案 0 :(得分:12)

来自the docs

  

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