为什么CPython的hash(-1)!= -1

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这条规则是例外?


胡子哥哥
浏览 189回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python