memoryview()
Функция memoryview() создаёт объект-представление, дающий прямой
доступ к внутреннему буферу другого объекта (например, bytes,
bytearray) без копирования. Это полезно при работе с большими
бинарными данными — изменения через memoryview отражаются на
исходном изменяемом объекте.
Сигнатура
memoryview(object)
Параметры:
object— объект, поддерживающий буферный протокол:bytes,bytearray,array.arrayи др.
Возвращает: объект memoryview.
Примеры
Создание из bytes и доступ к байтам:
data = b"Hello"
view = memoryview(data)
print(view[0])
print(view[1])
print(len(view))
72
101
5
Срез без копирования:
buf = bytearray(b"ABCDEFGH")
view = memoryview(buf)
part = view[2:5]
print(bytes(part))
b'CDE'
Изменение через memoryview меняет исходный bytearray:
buf = bytearray(b"hello")
view = memoryview(buf)
view[0] = ord("H")
print(buf)
bytearray(b'Hello')
Атрибуты представления:
view = memoryview(bytes([10, 20, 30, 40]))
print(view.format)
print(view.itemsize)
print(view.nbytes)
print(view.readonly)
B
1
4
True
Преобразование к списку целых:
view = memoryview(b"\x01\x02\x03\x04")
print(view.tolist())
[1, 2, 3, 4]
См. также
Примечание
Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.