Сообщить об ошибке.

Класс memoryview() в Python, ссылка на буфер обмена.

Создает ссылку на объект в памяти.

Синтаксис:

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