[issue33784] hash collision in instances of ipaddress.ip_network

Francois Schneider report at bugs.python.org
Thu Jun 7 18:17:51 EDT 2018


Francois Schneider <francois.schneider at gmail.com> added the comment:

Thanks for the analysis, I agree completely.

Actually the problem was coming from my code where one of the __eq__ method was implemented like this:
>>> def __eq__(self, other):
>>>   return hash(self) == hash(other)

so 2 instances with only a slight difference in their ip_network attribute (ip_network(u'20.0.2.3/32') and ip_network(u'20.0.2.0/30')) were having the same hash and being equal -> they could not be inserted both in the same collection.

I will just rewrite my __eq__ method properly.

----------
status: pending -> open

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue33784>
_______________________________________


More information about the Python-bugs-list mailing list