mirror of https://github.com/python/cpython
Issue #15814: Document planned restrictions for memoryview hashes in 3.3.1.
This commit is contained in:
parent
2a70535afd
commit
9ecae7a437
|
@ -2376,8 +2376,8 @@ copying.
|
|||
>>> data
|
||||
bytearray(b'z1spam')
|
||||
|
||||
Memoryviews of hashable (read-only) types are also hashable. The hash
|
||||
is defined as ``hash(m) == hash(m.tobytes())``::
|
||||
Memoryviews of hashable (read-only) types with formats 'B', 'b' or 'c'
|
||||
are also hashable. The hash is defined as ``hash(m) == hash(m.tobytes())``::
|
||||
|
||||
>>> v = memoryview(b'abcefg')
|
||||
>>> hash(v) == hash(b'abcefg')
|
||||
|
@ -2387,21 +2387,13 @@ copying.
|
|||
>>> hash(v[::-2]) == hash(b'abcefg'[::-2])
|
||||
True
|
||||
|
||||
Hashing of multi-dimensional objects is supported::
|
||||
|
||||
>>> buf = bytes(list(range(12)))
|
||||
>>> x = memoryview(buf)
|
||||
>>> y = x.cast('B', shape=[2,2,3])
|
||||
>>> x.tolist()
|
||||
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
|
||||
>>> y.tolist()
|
||||
[[[0, 1, 2], [3, 4, 5]], [[6, 7, 8], [9, 10, 11]]]
|
||||
>>> hash(x) == hash(y) == hash(y.tobytes())
|
||||
True
|
||||
|
||||
.. versionchanged:: 3.3
|
||||
Memoryview objects are now hashable.
|
||||
Memoryview objects with formats 'B', 'b' or 'c' are now hashable.
|
||||
|
||||
.. note::
|
||||
Hashing of memoryviews with formats other than 'B', 'b' or 'c' is
|
||||
possible in version 3.3.0, but will raise an error in 3.3.1 in order
|
||||
to be compatible with the new memoryview equality definition.
|
||||
|
||||
:class:`memoryview` has several methods:
|
||||
|
||||
|
|
Loading…
Reference in New Issue