MemoryView 物件

memoryview 物件將 C 語言級別的緩衝區介面公開為 Python 物件,然後可以像其他任何物件一樣傳遞。

PyObject *PyMemoryView_FromObject(PyObject *obj)
返回值: 新引用。 穩定ABI 的一部分。

從提供緩衝區介面的物件建立 memoryview 物件。如果 *obj* 支援可寫緩衝區匯出,則 memoryview 物件將是讀/寫,否則它可以是隻讀或讀/寫,由匯出器決定。

PyBUF_READ

請求只讀緩衝區的標誌。

PyBUF_WRITE

請求可寫緩衝區的標誌。

PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)
返回值: 新引用。 自 3.7 版本起成為 穩定ABI 的一部分。

使用 *mem* 作為底層緩衝區建立 memoryview 物件。*flags* 可以是 PyBUF_READPyBUF_WRITE 之一。

在 3.3 版本加入。

PyObject *PyMemoryView_FromBuffer(const Py_buffer *view)
返回值:新引用。 自 3.11 版本起成為穩定 ABI 的一部分。

建立一個 memoryview 物件,包裝給定的緩衝區結構 *view*。對於簡單的位元組緩衝區,PyMemoryView_FromMemory() 是首選函式。

PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)
返回值: 新引用。 穩定ABI 的一部分。

從定義緩衝區介面的物件建立一個指向連續記憶體塊(按 'C' 或 'F'ortran *order*)的 memoryview 物件。如果記憶體是連續的,則 memoryview 物件指向原始記憶體。否則,會建立一個副本,memoryview 指向一個新的位元組物件。

*buffertype* 可以是 PyBUF_READPyBUF_WRITE 之一。

int PyMemoryView_Check(PyObject *obj)

如果物件 *obj* 是 memoryview 物件,則返回 true。目前不允許建立 memoryview 的子類。此函式總是成功。

Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)

返回指向 memoryview 匯出器緩衝區私有副本的指標。*mview* 必須是 memoryview 例項;此宏不檢查其型別,您必須自己檢查,否則有崩潰的風險。

PyObject *PyMemoryView_GET_BASE(PyObject *mview)

返回指向 memoryview 所基於的匯出物件的指標,如果 memoryview 是由 PyMemoryView_FromMemory()PyMemoryView_FromBuffer() 函式之一建立的,則返回 NULL。*mview* 必須是 memoryview 例項。