[Python-Dev] Hashable memoryviews
Stefan Behnel
stefan_ml at behnel.de
Sun Nov 13 13:16:59 CET 2011
Stefan Krah, 13.11.2011 13:05:
> Nick Coghlan wrote:
>>> With slices or the new casts (See: http://bugs.python.org/issue5231,
>>> implemented in http://hg.python.org/features/pep-3118#memoryview ),
>>> it is possible to have different hashes for equal objects:
>>
>> Note that Antoine isn't suggesting that the underlying hash be *used*
>> as the memoryview's hash (that would be calculated according to the
>> same rules as the equality comparison). Instead, the ability to hash
>> the underlying object would just gate whether or not you could hash
>> the memoryview at all.
>
> I think they necessarily have to use the same hash, since:
>
> exporter = m1 ==> hash(exporter) = hash(m1)
> m1 = m2 ==> hash(m1) = hash(m2)
You can't expect the memoryview() to magically know what the underlying
hash function is. The only guarantee you get is that iff two memoryview
instances are looking at the same (subset of) data from two hashable
objects (or the same object), you will get the same hash value for both. It
may or may not correspond with the hash value that the buffer exporting
objects would give you.
Stefan
More information about the Python-Dev
mailing list