Python中的PyObject是什么?

soat7uwm  于 2023-01-01  发布在  Python
关注(0)|答案(2)|浏览(317)
    • 简短版本**

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

    • 详细版本**

我不是一个C/C ++程序员,但是当我在上面链接的文档中遇到PyObject时,Google告诉我PyObject是一个Python对象,是使用Python/C API定义的,具体来说,API文档对PyObject的定义如下:
所有的对象类型都是这个类型的扩展。这个类型包含了Python将一个指向对象的指针视为一个对象所需要的信息。在一个普通的"发布"版本中,它只包含了对象的引用计数和一个指向相应类型对象的指针。它对应于PyObject_HEAD宏的扩展所定义的字段。
坦率地说,我并不完全理解这一点,或者它是否回答了我的基本问题,但这并不使我认为仅仅将PyObject视为Python对象是明显错误的,就此打住。另一方面,也许从技术上讲,要算作PyObject,该类型必须是使用Python/C API作为标准Python的扩展创建的。例如,整数是PyObject

dxxyhpgq

dxxyhpgq1#

在Python中,你能接触到的每个值在C中都是PyObject,包括列表、字典、套接字、文件、整数、字符串、函数、类,只要你能说出它们的名字,在Python中,它就是PyObject

3b6akqbq

3b6akqbq2#

一个PyObject实际上只是一个C层的Python对象,因为Python中的整数是对象,所以它们也是PyObject s,不管它是用Python还是用C编写的,它在C层都是一个PyObject

相关问题