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_READoderPyBUF_WRITEsein.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_READoderPyBUF_WRITEsein.
-
int PyMemoryView_Check(PyObject *obj)¶
Gibt wahr zurück, wenn das Objekt obj ein MemoryView-Objekt ist. Es ist derzeit nicht erlaubt, Unterklassen von
memoryviewzu 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 FunktionenPyMemoryView_FromMemory()oderPyMemoryView_FromBuffer()erstellt wurde. mview **muss** eine MemoryView-Instanz sein.