MemoryView objects¶
memoryview
对象将C级buffer interface暴露为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)¶ 创建包含给定缓冲区结构视图的memoryview对象。对于简单的字节缓冲区,
PyMemoryView_FromMemory()
是首选函数。
- PyObject *
PyMemoryView_GetContiguous
(PyObject *obj, int buffertype, char order)¶ 从定义缓冲区接口的对象创建一个memoryview对象到contiguous内存块(在'C'或'F'ortran 顺序)。如果内存是连续的,memoryview对象指向原始内存。否则,将创建一个副本,并且memoryview指向一个新的字节对象。
- 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)¶ Return either a pointer to the exporting object that the memoryview is based on or NULL if the memoryview has been created by one of the functions
PyMemoryView_FromMemory()
orPyMemoryView_FromBuffer()
. mview 必须是一个memoryview实例。