MemoryViewオブジェクト—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/3.9/c-api/memoryview
移動先:案内検索

MemoryViewオブジェクト

memoryview オブジェクトは、CレベルのバッファインターフェイスをPythonオブジェクトとして公開し、他のオブジェクトと同じように渡すことができます。

PyObject *PyMemoryView_FromObject(PyObject *obj)
バッファインターフェイスを提供するオブジェクトからmemoryviewオブジェクトを作成します。 obj が書き込み可能なバッファーのエクスポートをサポートしている場合、memoryviewオブジェクトは読み取り/書き込みになります。それ以外の場合は、エクスポーターの裁量で読み取り専用または読み取り/書き込みのいずれかになります。
PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)

mem を基になるバッファーとして使用して、memoryviewオブジェクトを作成します。 フラグは、PyBUF_READまたはPyBUF_WRITEのいずれかになります。

バージョン3.3の新機能。

PyObject *PyMemoryView_FromBuffer(Py_buffer *view)
指定されたバッファ構造 view をラップするmemoryviewオブジェクトを作成します。 単純なバイトバッファの場合、 PyMemoryView_FromMemory()が推奨される関数です。
PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)
バッファインターフェイスを定義するオブジェクトから、メモリの連続チャンク(「C」または「F」ortran order )にmemoryviewオブジェクトを作成します。 メモリが連続している場合、memoryviewオブジェクトは元のメモリを指します。 それ以外の場合は、コピーが作成され、memoryviewが新しいbytesオブジェクトを指します。
int PyMemoryView_Check(PyObject *obj)
オブジェクト obj がmemoryviewオブジェクトの場合はtrueを返します。 現在、 memoryview のサブクラスを作成することは許可されていません。 この関数は常に成功します。
Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)
エクスポータのバッファのmemoryviewのプライベートコピーへのポインタを返します。 mview はmemoryviewインスタンスである必要があります。 このマクロはそのタイプをチェックしません。自分でチェックする必要があります。そうしないと、クラッシュする危険があります。
Py_buffer *PyMemoryView_GET_BASE(PyObject *mview)
メモリビューが基になっているエクスポートオブジェクトへのポインタを返すか、メモリビューが関数 PyMemoryView_FromMemory()または PyMemoryView_FromBuffer()のいずれかによって作成されている場合はNULLを返します。 ]。 mview はmemoryviewインスタンスである必要があります