[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