[Python-Dev] cpython: Describe the default hash correctly, and mark a couple of CPython

Antoine Pitrou solipsis at pitrou.net
Sun May 20 12:09:00 CEST 2012


On Sun, 20 May 2012 10:31:01 +0200
nick.coghlan <python-checkins at python.org> wrote:
> +
> +   .. impl-detail::
> +
> +      CPython uses ``hash(id(x))`` as the default hash for class instances.

This isn't true:

>>> class C: pass
... 
>>> c = C()
>>> hash(c)
619973
>>> id(c)
9919568
>>> hash(id(c))
9919568


id(...) always has the lower bits clear, so it was decided to shift it
to the right by a number of bits.

Regards

Antoine.




More information about the Python-Dev mailing list