Объекты 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