也许我错过了什么,但这是一个问题:
我正在通过C扩展跟踪python代码,我的跟踪函数得到了PyFrameObject *框架。现在我想通过Python代码处理框架(嵌入或通过Cython转换为C),但它处理PyObject *。
如何将PyFrameObject *转换为PyObject *?我在frameobject.h中找不到合适的转换函数。
感谢。
答案 0 :(得分:2)
使用演员:
PyObject *myObject = (PyObject *)myFrameObject
这是Python C API的标准;从PyObject
“继承”的所有内容在对象顶部都有一个PyObject_VAR_HEAD
,因此指向该对象的指针可转换为指向PyObject
的指针。