为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

梦里花落0921 2019-05-24 16:23:47
请问Python中的hash函数背后的__hash__和散列函数是一回事吗?只有可散列的对象可以调用hash(),那么可散列的对象是怎么定义的?感激不尽!!
查看完整描述

2 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

请问Python中的hash函数背后的__hash__和散列函数是一回事吗?不是。那么可散列的对象是怎么定义的?定义一个“类”的__hash__方法。有没有朋友知道
查看完整回答
反对 回复 2019-05-24
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

如果一个对象是可散列的,那么在这个对象的生命周期中,它的散列值是不变的,而且这个对象需要实现__hash()__方法。另外可散列对象还要有__eq()__方法,这样才能跟其他键做比较。如果两个可散列象是相等的,那么它们的散列值一定是一样的。原子不可变数据类型(str、bytes和数值类型)都是可散列类型,frozenset也是可散列的,因为根据其定义,frozenset里只能容纳可散列类型。元组的话,只有当一个元组包含的所有元素都是可散列类型的情况下,它才是可散列的.__hash__是用来计算一个对象的散列值。
                            
查看完整回答
反对 回复 2019-05-24
  • 2 回答
  • 0 关注
  • 533 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信