请问Python中的hash函数背后的__hash__和散列函数是一回事吗?只有可散列的对象可以调用hash(),那么可散列的对象是怎么定义的?感激不尽!!
2 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
请问Python中的hash函数背后的__hash__和散列函数是一回事吗?不是。那么可散列的对象是怎么定义的?定义一个“类”的__hash__方法。有没有朋友知道
喵喵时光机
TA贡献1846条经验 获得超7个赞
如果一个对象是可散列的,那么在这个对象的生命周期中,它的散列值是不变的,而且这个对象需要实现__hash()__方法。另外可散列对象还要有__eq()__方法,这样才能跟其他键做比较。如果两个可散列象是相等的,那么它们的散列值一定是一样的。原子不可变数据类型(str、bytes和数值类型)都是可散列类型,frozenset也是可散列的,因为根据其定义,frozenset里只能容纳可散列类型。元组的话,只有当一个元组包含的所有元素都是可散列类型的情况下,它才是可散列的.__hash__是用来计算一个对象的散列值。
添加回答
举报
0/150
提交
取消