hashable对象
2019-04-25 本文已影响0人
ThomasYoungK
- 一个hashable的对象,必须要满足:
-
__hash__
的返回值在整个生命周期中不变 - 如果2个对象的
__eq__
返回True, 则__hash__
必须相等
-
- dict或set中2个元素是同一个的条件是:
-
__eq__
是True而且__hash__
相同
2.__hash__
在整个生命周期内不变
3.__hash__
的条件比__eq__
弱一些 - 即使2个对象不同(set或dict含义上的),它们的hash值仍然可以相同
-
参考文献:
https://docs.python.org/3/glossary.html#term-hashable
https://hynek.me/articles/hashes-and-equality/