1

也许我错过了一些东西,但这里有一个问题:

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

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

谢谢。

4

1 回答 1

2

使用演员表:

PyObject *myObject = (PyObject *)myFrameObject

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

于 2012-06-18T13:02:16.013 回答