我做错什么了?我期望实例总是相等的,而不是不相等的。但事实证明,实例既平等又不平等。你知道吗
$ cat test.py
class MyClass(object):
def __eq__(self, other):
return True
if __name__ == '__main__':
a = MyClass()
b = MyClass()
if a == b:
print "Equal"
if a != b:
print "Unequal"
$ python --version
Python 2.7.6
$ python test.py
Equal
Unequal
问题是
!=
不会调用__eq__
并反转它。如果您想支持!=
,那么您还需要实现__ne__
。你知道吗a和b是不同的对象,因此调用默认对象
__ne__
方法,并报告True。你知道吗相关问题 更多 >
编程相关推荐