[Python-Dev] PEP 3144 review.

Antoine Pitrou solipsis at pitrou.net
Mon Sep 28 16:57:14 CEST 2009


Dj Gilcrease <digitalxero <at> gmail.com> writes:
> 
> >>> net1 = IPNetwork("10.1.2.3/24")
> >>> net2 = IPNetwork("10.1.2.0/24")
> >>> print hash(net1) == hash(net2)
> False
> >>> print net1 == net2
> True

Ouch :-)
It is very bad practice for equal objects to hash differently. Differing hashes
are supposed to imply non-equal objects, so as to allow the implementation of
associative containers with good performance characteristics.

Regards

Antoine.




More information about the Python-Dev mailing list