【发布时间】:2016-07-14 08:35:11
【问题描述】:
我使用 Spyder,运行 Python 2.7。
刚刚发现有趣的东西:
- hash(-1) 和hash(-2) 都返回-2,有问题吗?我虽然不同对象上的哈希函数应该返回不同的值。我读过以前的帖子, -1 在 Python 中被保留为错误。
- hash('s') 返回 1835142386,然后 hash(1835142386) 返回相同的值。这是另一个问题吗?
谢谢。
【问题讨论】:
-
"我虽然不同对象的哈希函数应该返回不同的值" --- 不,它只应该为同一个对象返回相同的值。
-
哈希不保证唯一性。
-
奇怪的是,除了 -1,
hash(i) == i之外的abs(i) <= 1,000,000。