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_READ
或PyBUF_WRITE
之一。在 3.3 版本中添加。
-
PyObject *PyMemoryView_FromBuffer(const Py_buffer *view)¶
- 返回值:新的引用。 自 3.11 版本以来,属于 稳定 ABI 的一部分。
创建包装给定缓冲区结构 view 的 memoryview 对象。对于简单的字节缓冲区,
PyMemoryView_FromMemory()
是首选函数。
-
PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)¶
- 返回值:新的引用。 稳定 ABI 的一部分。
从定义缓冲区接口的对象创建指向连续内存块的 memoryview 对象(采用 ‘C’ 或 ‘F’ortran order )。如果内存是连续的,则 memoryview 对象指向原始内存。否则,会创建一个副本,并且 memoryview 指向一个新的字节对象。
buffertype 可以是
PyBUF_READ
或PyBUF_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 实例。