如何将PyFrameObject转换为PyObject

时间:2012-06-18 12:58:18

标签: python c cython python-extensions python-embedding

也许我错过了什么,但这是一个问题:

我正在通过C扩展跟踪python代码,我的跟踪函数得到了PyFrameObject *框架。现在我想通过Python代码处理框架(嵌入或通过Cython转换为C),但它处理PyObject *。

如何将PyFrameObject *转换为PyObject *?我在frameobject.h中找不到合适的转换函数。

感谢。

1 个答案:

答案 0 :(得分:2)

使用演员:

PyObject *myObject = (PyObject *)myFrameObject

这是Python C API的标准;从PyObject“继承”的所有内容在对象顶部都有一个PyObject_VAR_HEAD,因此指向该对象的指针可转换为指向PyObject的指针。