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