Ce face memoryview()
O felie dintr-un bytes creează o copie. O felie dintr-un memoryview nu copiază nimic: arată spre aceeași memorie. Pentru date mari (fișiere, imagini, pachete de rețea) economisești memorie și timp.
Dacă obiectul de bază este modificabil (bytearray), modificările făcute prin memoryview se văd în original. tobytes() creează o copie bytes, iar release() eliberează legătura.
Parametri
| Parametru | Descriere |
|---|---|
obiect |
Un obiect care suportă protocolul buffer: bytes, bytearray, array.array… |
Ce returnează
Un obiect memoryview.
Exemple
Exemplul 1: Modificare fără copiere
date = bytearray(b"abcdef")
vedere = memoryview(date)
bucata = vedere[2:4]
bucata[:] = b"XY"
print(date)
print(bucata.tobytes(), len(vedere), vedere.nbytes)
Rezultat
bytearray(b'abXYef')
b'XY' 6 6
Greșeli frecvente
- Încerci să scrii printr-un
memoryviewal unuibytes:TypeError: cannot modify read-only memory. Folosește unbytearray.
Comenzi înrudite
bytes() și bytearray(): Secvențe de octeți (valori 0-255) pentru date binare: fișiere, rețea, text codificat.slice(): Creează un obiect „felie”, echivalentul lui [start:stop:pas], care poate fi salvat și refolosit.