简短版本
我最近在 Python 代码中看到一个函数的返回类型被指定为 PyObject
,在文档中有说明。那么,PyObject
是什么?
详细版本
虽然我不是 C/C++ 程序员,但当我在上面链接的文档中看到 PyObject
时,我通过 Google 发现 PyObject
是使用 Python/C API 定义的 Python 对象。具体来说,API 文档如下定义 PyObject:
所有对象类型都是这种类型的扩展。这是一种类型,其中包含 Python 需要处理指向对象的指针作为对象所需的信息。在正常的“发布”版本中,它仅包含对象的引用计数和指向相应类型对象的指针。它对应于 PyObject_HEAD 宏的扩展定义中定义的字段。
坦白地说,我并不完全理解这个定义,也不知道它是否回答了我的基本问题,但这并不使我认为将 PyObject
简单地视为 Python 对象是显然错误的。另一方面,也许为了严格算作 PyObject
,该类型必须使用 Python/C API 作为标准 Python 的扩展创建。例如,整数是 PyObject
吗?
可能相关的链接