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.