You are here:  Home » Python » 旧缓冲协议 – 抽象对象层(Python教程)(参考资料)

缓冲协议

自3.0版以来已弃用.

这些函数是Python 2中“旧缓冲区协议”API的一部分。在Python 3中,该协议不再存在,但是这些函数是为了便于移植2.x代码。它们充当了新的缓冲协议,但它们不会让你控制缓冲区出现时获得的资源的生命周期.

因此,建议你调用PyObject_GetBuffer()(或y*w* 使用函数族格式化代码PyArg_ParseTuple()获取缓冲区视图overan对象,并且PyBuffer_Release()可以释放缓冲区视图.

intPyObject_AsCharBuffer PyObject  *obj,const char  **buffer,Py_ssize_t  *buffer_len
返回指向可用作基于字符的输入的只读内存位置的指针obj参数必须支持单段字符缓冲接口。成功时,返回0,将buffer设置到内存位置,并将buffer_len设置为缓冲区长度。返回-1并设置TypeError错误.
int PyObject_AsReadBuffer PyObject  *obj,const void  **buffer,Py_ssize_t *buffer_len
返回指向包含任意数据的只读内存位置的指针.obj参数必须支持单段可读缓冲区接口。成功时,返回0,将buffer设置到内存位置,并将buffer_len设置为缓冲区长度。返回-1并在错误时设置TypeError
// PyObject_CheckReadBuffer PyObject  *o
返回1如果o支持单段可读缓冲区接口。否则返回0。这个函数总是成功的.

注意这个函数试图获取和释放缓冲区,调用correspoding函数时发生的异常将被抑制。要获得错误报告,请使用PyObject_GetBuffer()代替

int PyObject_AsWriteBuffer PyObject  *obj,void  **buffer,Py_ssize_t  *buffer_len
返回一个指针到一个可写的内存位置。obj参数必须支持单段字符缓冲区接口。成功后,返回0,将buffer设置到内存位置,将buffer_len设置为缓冲区长度。返回-1并设置TypeError错误.

评论被关闭。