python - 将 c 变量传递给 python 并返回

标签 python c pyobject

我正在使用 PyObject 功能来调用 c 函数,并且

return Py_BuildValue("theTypeToConvert", myCVariable);

将东西返回给我的 python 程序,一切正常。

但是我有一个自定义的 C 类型

extern HANDLE pascal

我如何将它的一个实例传递回 python,以便我稍后可以将它提供给其他 c 函数,我能想到的最接近的是使用

Py_BuildValue("O&", etc)

但这显然破坏了变量,因为我稍后没有得到正确的结果。

最佳答案

如果我正确理解您希望对象从 Python 的角度来看是“不透明的”,即只是一个指针值,您可以在 Python 中传递但不对其指向的对象进行操作,那么您可能会在胶囊对象。

有关胶囊的官方 Python 文档: https://docs.python.org/2/c-api/capsule.html#capsules

另见: Passing a C pointer around with the Python/C API

关于python - 将 c 变量传递给 python 并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29009201/

相关文章:

python - 保存 matplotlib 图时如何隐藏自定义按钮?

Python matplotlib 调用 savefig 后更新图形

c - C 中字符比较的段错误

c - 在不调用 semctl() 的情况下先调用 semget() 再调用 semop() 是否正确?

python - 尝试通过 Python 脚本发布 C 数据

python - ctypes.py_object 的属性

python - 带双引号的 Pandas 数据

python - 为具有全局变量的方法创建单元测试

c - 了解指针的类型和值