您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python中默认的__hash__是什么?

python中默认的__hash__是什么?

您可以依靠的是:自定义对象具有认值hash(),该认值在某种程度上基于对象的身份。也就是说,使用认哈希的任何对象在其生命周期内将具有该哈希的恒定值,并且不同的对象可能具有也可能没有不同的哈希值。

您不能依赖所返回id()的值和所返回的值之间的任何特定关系hash()。在Python 2.6和更低版本的标准C实现中,它们在Python 2.7-3.2中是相同的hash(x)==id(x)/16

最初我写道,在3.2.3和更高版本或2.7.3或更高版本中,哈希值可能是随机的,而在Python 3.3中,关系始终是随机的。实际上,目前随机化仅适用于散列字符串,因此,事实上16分频的关系可能会暂时保持下去,但不要依靠它。

哈希冲突通常并不重要:在字典查找中查找对象时,哈希必须具有相同的哈希,并且必须比较相等。只有当您遇到很大比例的冲突(例如,由于拒绝服务攻击而导致最近版本的Python能够随机化哈希计算)时,冲突才有意义。

python 2022/1/1 18:35:09 有220人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶