MemoryView 对象¶
一个 memoryview
对象C级别的 缓冲区接口 暴露为一个可以像任何其他对象一样传递的 Python 对象。
-
PyObject *
PyMemoryView_FromObject
(PyObject *obj)¶ - Return value: New reference.
从提供缓冲区接口的对象创建 memoryview 对象。 如果 obj 支持可写缓冲区导出,则 memoryview 对象将可以被读/写,否则它可能是只读的,也可以是导出器自行决定的读/写。
-
PyObject *
PyMemoryView_FromMemory
(char *mem, Py_ssize_t size, int flags)¶ - Return value: New reference.
使用 mem 作为底层缓冲区创建一个 memoryview 对象。 flags 可以是
PyBUF_READ
或者PyBUF_WRITE
之一.3.3 版新加入.
-
PyObject *
PyMemoryView_FromBuffer
(Py_buffer *view)¶ - Return value: New reference.
创建一个包含给定缓冲区结构 view 的 memoryview 对象。 对于简单的字节缓冲区,
PyMemoryView_FromMemory()
是首选函数。
-
PyObject *
PyMemoryView_GetContiguous
(PyObject *obj, int buffertype, char order)¶ - Return value: New reference.
从定义缓冲区接口的对象创建一个 memoryview 对象 contiguous 内存块(在 'C' 或 'F'ortran order 中)。 如果内存是连续的,则 memoryview 对象指向原始内存。 否则,复制并且 memoryview 指向新的 bytes 对象。
-
int
PyMemoryView_Check
(PyObject *obj)¶ 如果 obj 是一个 memoryview 对象则返回真值。 目前不允许创建
memoryview
的子类。 此函数总是会成功执行。
-
Py_buffer *
PyMemoryView_GET_BUFFER
(PyObject *mview)¶ 返回指向 memoryview 的导出缓冲区私有副本的指针。 mview 必须 是一个 memoryview 实例;这个宏不检查它的类型,你必须自己检查,否则你将面临崩溃风险。
-
Py_buffer *
PyMemoryView_GET_BASE
(PyObject *mview)¶ 返回 memoryview 所基于的导出对象的指针,或者如果 memoryview 已由函数
PyMemoryView_FromMemory()
或PyMemoryView_FromBuffer()
创建则返回NULL
。 mview 必须 是一个 memoryview 实例。