我正在扩展我们库中的类(支持 Python 2.7)以支持PEP 3118,它已向后移植到 2.7。
从文档中,我需要初始化该tp_as_buffer
字段以指向一个PyBufferProcs
. 但是,从 2.7 的文档中,该结构的描述仅包含旧缓冲区协议的条目。从消息来源中,我收集到
PyBufferProcs
新协议(bf_getbuffer
和bf_releasebuffer
)的一些附加条目。
问题仍然存在:
我必须做一些特别的事情来告诉 Python 这些新条目是有效的吗?
我必须填写旧协议的条目吗?(例如,2.7 的文档说,它
bf_getsegcount
可能不为空。但如果我支持 PEP 3118,则不应使用此条目。)