Объекты MemoryView¶MemoryView objects
Объект memoryview предоставляет буферный интерфейс уровня C как объект Python, который затем можно передавать как любой другой объект.
-
PyObject *
PyMemoryView_FromObject(PyObject *obj)¶ Создаёт объект memoryview из объекта, предоставляющего буферный интерфейс. Если obj поддерживает экспорт буфера с возможностью записи, объект memoryview будет доступен для чтения и записи; в противном случае он может быть только для чтения или для чтения и записи на усмотрение экспортёра.
-
PyObject *
PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)¶ Создаёт объект memoryview, используя mem в качестве базового буфера. flags может быть одним из
PyBUF_READилиPyBUF_WRITE.Новое в версии 3.3.
-
PyObject *
PyMemoryView_FromBuffer(Py_buffer *view)¶ Создаёт объект memoryview, обёртывающий заданную структуру буфера view. Для простых байтовых буферов предпочтительнее использовать функцию
PyMemoryView_FromMemory().
-
PyObject *
PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)¶ Создаёт объект memoryview, указывающий на непрерывный блок памяти (в порядке ‘C’ или ‘F’ortran, order), из объекта, определяющего буферный интерфейс. Если память непрерывна, объект 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.