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')