[issue9636] {'key': 'value'}
Antoine Pitrou
report at bugs.python.org
Thu Aug 19 19:18:41 CEST 2010
Antoine Pitrou <pitrou at free.fr> added the comment:
> It's worth noting that this warning is dependent on hash() producing
> the same values for 'equivalent' bytes and str instances. This seems
> a bit fragile, and is something that could potentially change in the
> future---with bytes and str comparing unequal, there's no reason for
> the hashes to correspond.
>
> (It might even make sense to deliberately change the hash for either
> bytes or str so that it doesn't match the other, just to expose any
> bugs that rely on the hashes being identical.)
Actually, no, the "consistency" of hashes is necessary for the
BytesWarning to be useful with dicts. Because the situations it is meant
to uncover are those where e.g. you have "A" as a key and you are
looking up b"A".
(you don't really care, on the other hand, if you are looking up b"A" in
a dict which has only "B"; and, yes, I know there will still be false
positives :-))
----------
title: {'key': 'value'}[b'key'] raises a BytesWarning -> {'key': 'value'}
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue9636>
_______________________________________
More information about the Python-bugs-list
mailing list