【发布时间】:2021-06-06 03:42:40
【问题描述】:
上下文:构建一致的哈希算法。
Python 的 hash() 函数的 official documentation 声明:
返回对象的哈希值(如果有的话)。哈希值是整数。
但是,它没有明确说明函数是否映射到整数范围(具有最小值和最大值)。
来自其他基本类型值有界的语言(例如 C#/Java 的 Int.MaxValue),我知道 Python's likes to think in "unbounded" terms - 即在后台从 int 切换到 long。
我是否假设hash() 函数也是无限的?或者它是有界的,例如映射到 Python 分配给max/min values of the "int-proper" 的内容——即在-2147483648 到2147483647 之间?
【问题讨论】:
-
"在后台从 int 切换到 long。"在 Python 3 中不再存在这种区别,它在整个范围内都是
int,并且没有公开从“short int”到“long int”到“infinite”的切换。