MemoryView-Objekte

Ein memoryview-Objekt stellt die C-Ebene der Buffer-Schnittstelle als Python-Objekt dar, das dann wie jedes andere Objekt weitergegeben werden kann.

PyObject *PyMemoryView_FromObject(PyObject *obj)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Erzeugt ein MemoryView-Objekt aus einem Objekt, das die Buffer-Schnittstelle bereitstellt. Wenn obj schreibbare Buffer-Exporte unterstützt, ist das MemoryView-Objekt Lese-/Schreibzugriff; andernfalls kann es nach Ermessen des Exporteurs schreibgeschützt oder Lese-/Schreibzugriff sein.

PyBUF_READ

Flag zum Anfordern eines schreibgeschützten Buffers.

PyBUF_WRITE

Flag zum Anfordern eines beschreibbaren Buffers.

PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)
Rückgabewert: Neue Referenz. Teil der Stable ABI seit Version 3.7.

Erzeugt ein MemoryView-Objekt, das mem als zugrunde liegenden Buffer verwendet. flags kann entweder PyBUF_READ oder PyBUF_WRITE sein.

Hinzugefügt in Version 3.3.

PyObject *PyMemoryView_FromBuffer(const Py_buffer *view)
Rückgabewert: Neue Referenz. Teil der Stable ABI seit Version 3.11.

Erzeugt ein MemoryView-Objekt, das die gegebene Buffer-Struktur view umschließt. Für einfache Byte-Buffer ist PyMemoryView_FromMemory() die bevorzugte Funktion.

PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Erzeugt ein MemoryView-Objekt für einen zusammenhängenden Speicherbereich (entweder in „C“- oder „F“-ortran-Reihenfolge) aus einem Objekt, das die Buffer-Schnittstelle definiert. Wenn der Speicher zusammenhängend ist, zeigt das MemoryView-Objekt auf den ursprünglichen Speicher. Andernfalls wird eine Kopie erstellt und das MemoryView zeigt auf ein neues Bytes-Objekt.

buffertype kann entweder PyBUF_READ oder PyBUF_WRITE sein.

int PyMemoryView_Check(PyObject *obj)

Gibt wahr zurück, wenn das Objekt obj ein MemoryView-Objekt ist. Es ist derzeit nicht erlaubt, Unterklassen von memoryview zu erstellen. Diese Funktion ist immer erfolgreich.

Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)

Gibt einen Zeiger auf die private Kopie des Buffers des Exporteurs im MemoryView zurück. mview **muss** eine MemoryView-Instanz sein; dieses Makro prüft nicht seinen Typ, Sie müssen dies selbst tun, sonst riskieren Sie Abstürze.

PyObject *PyMemoryView_GET_BASE(PyObject *mview)

Gibt entweder einen Zeiger auf das exportierende Objekt zurück, auf dem das MemoryView basiert, oder NULL, wenn das MemoryView mit einer der Funktionen PyMemoryView_FromMemory() oder PyMemoryView_FromBuffer() erstellt wurde. mview **muss** eine MemoryView-Instanz sein.