- 一個(gè)hashable的對(duì)象凰兑,必須要滿足:
-
__hash__
的返回值在整個(gè)生命周期中不變 - 如果2個(gè)對(duì)象的
__eq__
返回True, 則__hash__
必須相等
-
- dict或set中2個(gè)元素是同一個(gè)的條件是:
-
__eq__
是True而且__hash__
相同
2.__hash__
在整個(gè)生命周期內(nèi)不變
3.__hash__
的條件比__eq__
弱一些 - 即使2個(gè)對(duì)象不同(set或dict含義上的)辐宾,它們的hash值仍然可以相同
-
參考文獻(xiàn):
https://docs.python.org/3/glossary.html#term-hashable
https://hynek.me/articles/hashes-and-equality/