memoryview.md
1> **Источник:** https://python-all.ru/3.2/c-api/memoryview.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты MemoryView89Объект [`memoryview`](https://python-all.ru/3.2/library/stdtypes.html#memoryview) предоставляет [*интерфейс буфера на уровне C*](https://python-all.ru/3.2/c-api/buffer.html#bufferobjects) в виде объекта Python, который можно передавать как любой другой объект.1011#### `PyObject *PyMemoryView_FromObject(PyObject *obj)`1213Создаёт объект memoryview из объекта, предоставляющего буферный интерфейс. Если *obj* поддерживает экспорт записываемого буфера, объект memoryview будет доступен для чтения и записи, в противном случае он будет только для чтения.1415#### `PyObject *PyMemoryView_FromBuffer(Py_buffer *view)`1617Создаёт объект memoryview, оборачивающий данную буферную структуру *view*. Объект memoryview затем владеет буфером, представленным *view*, что означает, что не следует пытаться вызывать [`PyBuffer_Release()`](https://python-all.ru/3.2/c-api/buffer.html#PyBuffer_Release) самостоятельно: это будет выполнено при освобождении объекта memoryview.1819#### `PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)`2021Создаёт объект memoryview для непрерывного участка памяти (в порядке ‘C’ или ‘Фортран’ *order*) из объекта, определяющего буферный интерфейс. Если память непрерывна, объект memoryview указывает на исходную память. В противном случае создаётся копия, и memoryview указывает на новый объект bytes.2223#### `int PyMemoryView_Check(PyObject *obj)`2425Возвращает истину, если объект *obj* является объектом memoryview. В настоящее время не разрешается создавать подклассы [`memoryview`](https://python-all.ru/3.2/library/stdtypes.html#memoryview).2627#### `Py_buffer *PyMemoryView_GET_BUFFER(PyObject *obj)`2829Возвращает указатель на буферную структуру, обёрнутую данным объектом memoryview. Объект **должен** быть экземпляром memoryview; этот макрос не проверяет его тип, вы должны сделать это сами, иначе рискуете получить аварийное завершение.30