美文网首页
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__(

    参考link 为什么要用hash(self)和 eq(self) 当定义一个类,并设定这个类是可哈希的集合(has...

  • Python的__hash__函数和__eq__函数

    Python的__hash__函数和__eq__函数 可哈希的集合(hashed collections),需要集...

  • python中的__eq__()方法和__hash__()函数

    关于 eq 和 hash __hash__实际上是返回一个int值,用来唯一标记这个对象。用户自定义类中,如果你没...

  • 谈谈__eq__和__hash__

    今天刷一道算法题的时候用到了list_a == list_b的判断,==和is大家都已经是耳熟能详了,前者是判断值...

  • hashable对象

    一个hashable的对象,必须要满足:__hash__的返回值在整个生命周期中不变如果2个对象的__eq__返回...

  • 【笨办法学Python】- 习题39、40、45

    习题 39 习题 40 运行: 习题 45 python中self和__init__的含义 以及self和__in...

  • python中的self

    首先,对于python,只有针对类来说的self才有意义,所以python中的self,说的即是python类中的...

  • python中self 和cls区别

    类的方法有三种: 一、是通过def定义,需要至少传递一个参数,一般用self,这样的方法必须通过一个类的实例去访问...

  • Swift中self和Self

    是什么 相信大家都知道self这个关键字的具体作用,它跟OC里的self基本一样。但是对于Self来说...(WT...

  • python中self,cls

    普通的方法,第一个参数需要是self,它表示一个具体的实例本身。 如果用了staticmethod,那么就可以无视...

网友评论

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

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