memoryview(obj)
obj
- объект, поддерживающий буферный протокол.Класс memoryview()
возвращает ссылку на буфер обмена памяти, в которой находится переданный в качестве аргумента объект. Объект obj
должен поддерживать протокол буфера обмена.
Протокол буфера обмена поддерживают встроенные объекты, такие как bytes
и bytearray
.
Протокол буфера обмена предоставляет способ доступа к внутренним данным объекта. Эти данные являются массивом памяти или буфером. Это позволяет одному объекту предоставлять свои внутренние данные (буферы), а другому, осуществлять доступ к этим буферам без промежуточного копирования.
Класс memoryview()
обеспечивает прямой доступ для чтения и записи к байтово-ориентированным данным объекта без необходимости их предварительного копирования. Это приводит к значительному увеличению производительности при работе с большими объектами, такими как двоичные данные видео или изображения, поскольку создает другой объект доступа для изменения больших данных без их копирования.
memoryview()
.Изменение внутренних данных с помощью представления памяти.
byte_array = bytearray('XYZ', 'utf-8')
print('До обновления:', byte_array)
# Вывод
# До обновления: bytearray (b'XYZ')
mem_view = memoryview(byte_array)
# изменим 3 символ в 'mem_view' на J
mem_view[2] = 74
print('После обновления:', byte_array)
# Вывод
# После обновления: bytearray (b'XYJ')