短版本

我最近遇到了一些Python代码,其中函数的返回类型在the documentation中被指定为PyObject。什么是PyObject?

详细版本

我不是C/C++程序员,但是当我在上面链接的文档中遇到^ {CD1>}时,谷歌告诉我^ {CD1>}是Python对象,它是用Python /C API定义的。具体来说,API documentation定义PyObject如下:All object types are extensions of this type. This is a type which

contains the information Python needs to treat a pointer to an object

as an object. In a normal “release” build, it contains only the

object’s reference count and a pointer to the corresponding type

object. It corresponds to the fields defined by the expansion of the

PyObject_HEAD macro.

坦率地说,我不完全理解这个问题,也不知道它是否回答了我的基本问题,但它并没有让我认为把PyObject看作一个Python对象完全停止显然是错误的。另一方面,从技术上讲,如果要将该类型计算为PyObject,则必须使用Python/C API将其创建为标准Python的扩展。例如,整数是否为aPyObject?

潜在相关链接