Spec-Zone.ru › Python 3.12

Объекты MemoryView

Объект memoryview предоставляет интерфейс буфера на уровне C в виде объекта Python, который затем можно передавать так же, как любой другой объект.

PyObject *PyMemoryView_FromObject(PyObject *obj)
Возвращаемое значение: новая ссылка. Часть стабильного ABI.

Создаёт объект memoryview на основе объекта, предоставляющего интерфейс буфера. Если obj поддерживает экспорт буфера с возможностью записи, объект memoryview будет доступен для чтения и записи; в противном случае он может быть доступен только для чтения или для чтения и записи — на усмотрение экспортирующего объекта.

PyBUF_READ

Флаг для запроса буфера только для чтения.

PyBUF_WRITE

Флаг для запроса буфера с возможностью записи.

PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)
Возвращаемое значение: новая ссылка. Часть стабильного ABI начиная с версии 3.7.

Создаёт объект memoryview, используя mem в качестве базового буфера. flags может принимать значение PyBUF_READ или PyBUF_WRITE.

Добавлено в версии 3.3.

PyObject *PyMemoryView_FromBuffer(const Py_buffer *view)
Возвращаемое значение: новая ссылка. Часть стабильного ABI начиная с версии 3.11.

Создаёт объект memoryview, оборачивающий указанную структуру буфера view. Для простых байтовых буферов предпочтительно использовать функцию PyMemoryView_FromMemory().

PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)
Возвращаемое значение: новая ссылка. Часть стабильного ABI.

Создаёт объект memoryview для непрерывного участка памяти (в порядке ‘C’ или ‘F’ — Fortran) из объекта, определяющего интерфейс буфера. Если память непрерывна, объект memoryview указывает на исходную память. В противном случае создаётся копия, и memoryview указывает на новый объект bytes.

buffertype может принимать значение PyBUF_READ или PyBUF_WRITE.

int PyMemoryView_Check(PyObject *obj)

Возвращает true, если объект obj является объектом memoryview. В настоящее время создавать подклассы memoryview нельзя. Эта функция всегда завершается успешно.

Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)

Возвращает указатель на приватную копию буфера экспортирующего объекта, принадлежащую memoryview. mview должен быть экземпляром memoryview; этот макрос не проверяет его тип, поэтому вы должны сделать это самостоятельно, иначе возможен сбой.

PyObject *PyMemoryView_GET_BASE(PyObject *mview)

Возвращает указатель на экспортирующий объект, на основе которого создан memoryview, либо NULL, если memoryview был создан одной из функций PyMemoryView_FromMemory() или PyMemoryView_FromBuffer(). mview должен быть экземпляром memoryview.

© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/c-api/memoryview.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API