Code: Alles auswählen
Python 3.1.1+ (r311:74480, Nov 2 2009, 14:49:22)
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
# es fängt schon gut an
>>> m = memoryview('abcdefg')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot make memory view because object does not have the buffer interface
>>> m = memoryview(b'abcdefg')
>>> m
<memory at 0xb75260cc>
>>> m[0]
b'a'
# so mag er das nicht, also später passenden Typ übergeben
>>> m[0] = '*'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot modify read-only memory
>>> b = bytearray(b'abcdefg')
>>> mb = memoryview(b)
# jetzt vergesse ich schon wieder das `b'`
>>> mb[0] = '*'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' does not support the buffer interface
>>> mb[0] = b'*'
>>> mb[0]
b'*'
# wäre auch zu einfach gewesen
>>> mb[:3]
<memory at 0xb752616c>
# yeah, Seiteneffekt (aber das muss wohl so sein)
>>> b[:3]
bytearray(b'*bc')

Naja, vermutlich muss ich mich wirklich noch näher damit auseinandersetzen und werde hoffentlich schon bald den ersten schlechten Eindruck wieder revidieren können.