python - 如何将 PyFrameObject 转换为 PyObject

标签 python c cython python-extensions python-embedding

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

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

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

谢谢。

最佳答案

使用强制转换:

PyObject *myObject = (PyObject *)myFrameObject

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

关于python - 如何将 PyFrameObject 转换为 PyObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11083411/

相关文章:

python - 如何播放声音一次,但不仅仅是一次?

python - pygame更新不一致

c - c语言中如何包含头文件

numpy - 如何使用 cython 加速 numpy?

python - 如何在 python 中对 N 列求和?

php - 什么是 PHP 相当于 Python 的 Try : . .. 除了:

c - 混合程序(.asm + .cpp): modify small math program's code to include float input

c - 从文本文件分配给数组的值不正确

python - 在 Python 脚本中调用 Cython 函数时出现意外的性能损失?

python - 如何告诉 distutils 使用 gcc?