Объекты MemoryView¶MemoryView objects
Объект memoryview предоставляет буферный интерфейс уровня C как объект Python, который затем можно передавать как любой другой объект.
-
PyObject *PyMemoryView_FromObject(PyObject *obj)¶
- Возвращаемое значение: новая ссылка. Часть Stable ABI.
Создаёт объект memoryview из объекта, предоставляющего буферный интерфейс. Если obj поддерживает экспорт буфера с возможностью записи, объект memoryview будет доступен для чтения и записи; в противном случае он может быть только для чтения или для чтения и записи на усмотрение экспортёра.
-
PyBUF_READ¶
Флаг для запроса буфера, доступного только для чтения.
-
PyBUF_WRITE¶
Флаг для запроса буфера с возможностью записи.
-
PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)¶
- Возвращаемое значение: новая ссылка. Часть Stable ABI начиная с версии 3.7.
Создаёт объект memoryview, используя mem в качестве базового буфера. flags может быть одним из
PyBUF_READилиPyBUF_WRITE.Добавлено в версии 3.3.
-
PyObject *PyMemoryView_FromBuffer(const Py_buffer *view)¶
- Возвращаемое значение: новая ссылка. Часть Stable ABI начиная с версии 3.11.
Создаёт объект memoryview, обёртывающий заданную структуру буфера view. Для простых байтовых буферов предпочтительнее использовать функцию
PyMemoryView_FromMemory().
-
PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)¶
- Возвращаемое значение: новая ссылка. Часть Stable ABI.
Создаёт объект memoryview, указывающий на непрерывный блок памяти (в порядке ‘C’ или ‘F’ortran, order), из объекта, определяющего буферный интерфейс. Если память непрерывна, объект 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.