int.__hash__
简单地返回值似乎是合理的。果然,这似乎是 CPython 的实现方式:
>>> hash(1)
1
>>> hash(2)
2
>>> hash(123456789)
123456789
>>> hash(-123456789)
-123456789
好的,那么这对所有大多数整数 x 都成立吗?
>>> [x for x in range(-10000, 10000) if hash(x) != x]
[-1]
嗯?
>>> hash(-1)
-2
为什么-1
这条规则有例外?