【问题标题】:How to convert PyFrameObject to PyObject如何将 PyFrameObject 转换为 PyObject
【发布时间】:2012-06-18 12:58:18
【问题描述】:

也许我遗漏了什么,但这里有个问题:

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

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

谢谢。

【问题讨论】:

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


    【解决方案1】:

    使用演员表:

    PyObject *myObject = (PyObject *)myFrameObject
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-26
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多