对于旧的python(至少是我的python 2.7),似乎
hash(<some type>) = id(<type>) / 16
并且对于CPython
id()是内存中的地址-http :
//docs.python.org/2/library/functions.html#id
>>> id(int) / hash(int) 16 >>> id(int) % hash(int) 0
所以我的猜测是Android端口对内存地址有一些奇怪的约定吗?
无论如何,鉴于以上所述,类型(和其他内置函数)的哈希值在安装过程中会有所不同,因为函数位于不同的地址。
相比之下,值的哈希值(我认为您所说的“非内部对象”是指)(在添加随机对象之前)是根据值的哈希值计算的,因此很可能是可重复的。
PS,但至少还有一个CPython折皱:
>>> for i in range(-1000,1000):... if hash(i) != i: print(i)...-1
在某处有一个答案来解释那个…
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)