Python中的hash函数背后的__hash__和散列函数是一回事吗?

请问Python中的hash函数背后的__hash__和散列函数是一回事吗?只有可散列的对象可以调用hash(),那么可散列的对象是怎么定义的?感激不尽!!
梦里花落0921
浏览 535回答 2
2回答

慕码人2483693

请问Python中的hash函数背后的__hash__和散列函数是一回事吗?不是。那么可散列的对象是怎么定义的?定义一个“类”的__hash__方法。有没有朋友知道

喵喵时光机

如果一个对象是可散列的,那么在这个对象的生命周期中,它的散列值是不变的,而且这个对象需要实现__hash()__方法。另外可散列对象还要有__eq()__方法,这样才能跟其他键做比较。如果两个可散列象是相等的,那么它们的散列值一定是一样的。原子不可变数据类型(str、bytes和数值类型)都是可散列类型,frozenset也是可散列的,因为根据其定义,frozenset里只能容纳可散列类型。元组的话,只有当一个元组包含的所有元素都是可散列类型的情况下,它才是可散列的.__hash__是用来计算一个对象的散列值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript