hashable对象

  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/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。