标签: python python-3.x hash equals-operator
根据Python 3 documentation,比较相等的对象应具有相同的哈希值。但是,在给定时间内可以比较两个不同的可变对象并不常见,例如,您可能仍希望将它们用作字典中的不同键。
在这种情况下,可以重新实现__eq__()和__hash__()方法以允许这种区分,从而打破a==b → hash(a)==hash(b)假设?或者最好使用相同的语义定义新的"equals()"方法?打破这种关系有什么可能的副作用?
__eq__()
__hash__()
a==b → hash(a)==hash(b)
"equals()"