美文网首页
python中 __hash__(self) 和 __eq__(

python中 __hash__(self) 和 __eq__(

作者: emm_simon | 来源:发表于2020-01-14 22:02 被阅读0次

    参考link

    为什么要用hash(self)和 eq(self)

    当定义一个类,并设定这个类是可哈希的集合(hashed collections),
    这就需要集合的元素实现了eqhash,而这两个方法可以作一个形象的比喻:
    哈希集合就是很多个桶,但每个桶里面只能放一个球。
    __hash__函数的作用就是找到桶的位置,到底是几号桶。
    __eq__函数的作用就是当桶里面已经有一个球了,但又来了一个球,它声称它也应该装进这个桶里面(hash函数给它说了桶的位置),双方僵持不下,那就得用eq函数来判断这两个球是不是相等的(equal),如果是判断是相等的,那么后来那个球就不应该放进桶里,哈希集合维持现状。

    相关文章

      网友评论

          本文标题:python中 __hash__(self) 和 __eq__(

          本文链接:https://www.haomeiwen.com/subject/vuczactx.html