hashable对象

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

参考文献:
https://docs.python.org/3/glossary.html#term-hashable
https://hynek.me/articles/hashes-and-equality/

上一篇下一篇

猜你喜欢

热点阅读