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