旧缓冲协议 — Python 文档
旧缓冲协议
本节介绍了 Python 1.6 中引入的遗留缓冲区协议。 它仍然受支持,但在 Python 2.x 系列中已弃用。 Python 3 引入了一个新的缓冲区协议,它修复了协议的弱点和缺点,并已向后移植到 Python 2.6。 有关更多信息,请参阅 缓冲区和内存视图对象 。
- int PyObject_AsCharBuffer(PyObject *obj, const char **buffer, Py_ssize_t *buffer_len)
返回一个指向可用作基于字符的输入的只读内存位置的指针。 obj 参数必须支持单段字符缓冲区接口。 成功时,返回
0
,将 buffer 设置为内存位置,将 buffer_len 设置为缓冲区长度。 返回-1
并在出错时设置TypeError
。1.6 版中的新功能。
2.5 版更改: 该函数使用
int *
类型为 buffer_len。 这可能需要更改您的代码才能正确支持 64 位系统。
- int PyObject_AsReadBuffer(PyObject *obj, const void **buffer, Py_ssize_t *buffer_len)
返回一个指向包含任意数据的只读内存位置的指针。 obj 参数必须支持单段可读缓冲区接口。 成功时,返回
0
,将 buffer 设置为内存位置,将 buffer_len 设置为缓冲区长度。 返回-1
并在出错时设置TypeError
。1.6 版中的新功能。
2.5 版更改: 该函数使用
int *
类型为 buffer_len。 这可能需要更改您的代码才能正确支持 64 位系统。
- int PyObject_CheckReadBuffer(PyObject *o)
如果 o 支持单段可读缓冲区接口,则返回
1
。 否则返回0
。2.2 版中的新功能。
- int PyObject_AsWriteBuffer(PyObject *obj, void **buffer, Py_ssize_t *buffer_len)
返回指向可写内存位置的指针。 obj 参数必须支持单段、字符缓冲区接口。 成功时,返回
0
,将 buffer 设置为内存位置,将 buffer_len 设置为缓冲区长度。 返回-1
并在出错时设置TypeError
。1.6 版中的新功能。
2.5 版更改: 该函数使用
int *
类型为 buffer_len。 这可能需要更改您的代码才能正确支持 64 位系统。