【发布时间】:2015-11-08 04:52:32
【问题描述】:
docs 错误地声称
默认情况下,作为用户定义类实例的对象是可散列的;他们都比较不相等(除了他们自己),他们的哈希值是他们的
id()
虽然我记得这曾经是正确的,但在当前版本的 python(v2.7.10、v3.5.0)中,散列等于其 id 的此类对象显然不正确。
>>> class A:
... pass
...
>>> a = A()
>>> hash(a)
-9223372036578022804
>>> id(a)
4428048072
在文档的another part 中,据说散列派生自id。何时/为什么改变了实现,哈希返回的数字现在如何“派生自”id?
【问题讨论】: