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