eri*_*ric 22 c python python-extensions
精简版
我最近遇到了一些Python代码,其中函数的返回类型PyObject
在文档中指定.什么是PyObject
?
详细版本
我不是C/C++程序员,但是当我遇到PyObject
上面链接的文档时,Google告诉我这PyObject
是一个使用Python/C API定义的Python对象.具体来说,API文档定义PyObject如下:
所有对象类型都是此类型的扩展.这是一种类型,其中包含Python将对象指针视为对象所需的信息.在正常的"发布"版本中,它仅包含对象的引用计数和指向相应类型对象的指针.它对应于PyObject_HEAD宏扩展定义的字段.
坦率地说,我并不完全理解这一点,或者它是否回答了我的基本问题,但它并没有让我觉得将PyObject
一个对象视为一个完整的Python对象显然是错误的.另一方面,也许从技术上来说,PyObject
必须使用Python/C API将该类型创建为标准Python的扩展.例如,是一个整数a PyObject
?
可能相关的链接
http://docs.scipy.org/doc/numpy/reference/c-api.types-and-structures.html
ick*_*fay 15
你在Python中可以触及的每个值都是PyObject
在C中.包括列表,字典,套接字,文件,整数,字符串,函数,类,你可以命名它.如果你可以用Python触摸它,它就是用PyObject
C.
PyObject
事实上,A 只是C级的Python对象.因为Python中的整数是对象,所以它们也是PyObject
s.它无论是用Python还是用C编写都无关紧要,PyObject
无论如何都是C级.