Объекты MemoryView

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

PyObject *PyMemoryView_FromObject(PyObject *obj)
Return value: New reference. Part of the Stable ABI.

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

PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)
Return value: New reference. Part of the Stable ABI since version 3.7.

Создает объект 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. Part of the Stable ABI.

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

int PyMemoryView_Check(PyObject *obj)

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

Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)

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

Py_buffer *PyMemoryView_GET_BASE(PyObject *mview)

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

Вернуться на верх