Объекты MemoryView
Объект memoryview
представляет уровень C
буферного интерфейса как объект Python, который затем можно
передавать, как и любой другой объект.
-
PyObject *
PyMemoryView_FromObject
(PyObject *obj) - Return value: New reference.
Создать объект memoryview из объекта, который предоставляет интерфейс буфера. Если obj поддерживает экспорт буфера с возможностью записи, объект memoryview будет доступен для чтения/записи, в противном случае он может быть доступен только для чтения или чтения/записи по усмотрению экспортёра.
-
PyObject *
PyMemoryView_FromMemory
(char *mem, Py_ssize_t size, int flags) - Return value: New reference.
Создать объект memoryview, используя mem в качестве базового буфера. flags может быть одним из
PyBUF_READ
илиPyBUF_WRITE
.Добавлено в версии 3.3.
-
PyObject *
PyMemoryView_FromBuffer
(Py_buffer *view) - Return value: New reference.
Создать объект memoryview, обертывающий данную буферную структуру view. Для простых байтовых буферов предпочтительной функцией является
PyMemoryView_FromMemory()
.
-
PyObject *
PyMemoryView_GetContiguous
(PyObject *obj, int buffertype, char order) - Return value: New reference.
Создать объект memoryview в смежном фрагменте памяти (в C или Fortran порядке) из объекта, который определяет интерфейс буфера. Если память непрерывна, объект memoryview указывает на исходную память. В противном случае создаётся копия, и memoryview указывает на новый объект байтов.
-
int
PyMemoryView_Check
(PyObject *obj) Возвращает истину, если объект obj является объектом memoryview. В настоящее время нельзя создавать подклассы
memoryview
.
-
Py_buffer *
PyMemoryView_GET_BUFFER
(PyObject *mview) Возвращает указатель на личную копию буфера экспортера в memoryview. mview должен быть экземпляром memoryview; данный макрос не проверяет свой тип, вы должны сделать это самостоятельно, иначе вы рискуете вылететь.
-
Py_buffer *
PyMemoryView_GET_BASE
(PyObject *mview) Возвращает либо указатель на экспортируемый объект, на котором основано представление памяти, либо
NULL
, если представление памяти было создано одной из функцийPyMemoryView_FromMemory()
илиPyMemoryView_FromBuffer()
. mview должен быть экземпляром memoryview.