在Python 3中打破__eq__和__hash__之间关系的副作用

时间:2018-05-05 12:13:16

标签: python python-3.x hash equals-operator

根据Python 3 documentation,比较相等的对象应具有相同的哈希值。但是,在给定时间内可以比较两个不同的可变对象并不常见,例如,您可能仍希望将它们用作字典中的不同键。

在这种情况下,可以重新实现__eq__()__hash__()方法以允许这种区分,从而打破a==b → hash(a)==hash(b)假设?或者最好使用相同的语义定义新的"equals()"方法?打破这种关系有什么可能的副作用?

0 个答案:

没有答案