Объекты MemoryView

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

PyObject *PyMemoryView_FromObject(PyObject *obj)
Возвращаемое значение: Новая ссылка. Part of the Стабильный ABI.

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

PyBUF_READ

Флажок для запроса буфера, доступного только для чтения.

PyBUF_WRITE

Флажок для запроса буфера, доступного для записи.

PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)
Возвращаемое значение: Новая ссылка. Part of the Стабильный ABI since version 3.7.

Создайте объект memoryview, используя mem в качестве базового буфера. флаги могут быть одним из следующих значений PyBUF_READ или PyBUF_WRITE.

Добавлено в версии 3.3.

PyObject *PyMemoryView_FromBuffer(const Py_buffer *view)
Возвращаемое значение: Новая ссылка. Part of the Стабильный ABI since version 3.11.

Создайте объект memoryview, содержащий заданную структуру буфера view. Для простых байтовых буферов предпочтительной функцией является PyMemoryView_FromMemory().

PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)
Возвращаемое значение: Новая ссылка. Part of the Стабильный ABI.

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

тип буфера может быть одним из 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.

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