python中 __hash__(self) 和 __eq__(self)

参考link

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

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

你可能感兴趣的:(python中 __hash__(self) 和 __eq__(self))