首页 >后端开发 >C++ >如何从通过 C/C 调用的 Python 方法中提取返回值?

如何从通过 C/C 调用的 Python 方法中提取返回值?

DDD
DDD原创
2024-12-19 22:37:11567浏览

How to Extract Return Values from Python Methods Called via C/C  ?

从 C/C 调用的 Python 方法中提取返回值

当从 C 调用自定义 Python 函数时,人们可能希望检索返回值以在 C 中进行进一步处理。这可以通过利用 CPython API 提供的方法来实现。

开始于使用 PyImport_Import() 导入 Python 模块:

PyObject* myModuleString = PyString_FromString((char*)"mytest");
PyObject* myModule = PyImport_Import(myModuleString);

接下来,使用 PyObject_GetAttrString() 获取对函数的引用:

PyObject* myFunction = PyObject_GetAttrString(myModule,(char*)"myabs");

为函数创建参数并使用 PyObject_CallObject 调用它():

PyObject* args = PyTuple_Pack(1,PyFloat_FromDouble(2.0));
PyObject* myResult = PyObject_CallObject(myFunction, args);

最后,检索 C double结果:

double result = PyFloat_AsDouble(myResult);

请注意,错误处理至关重要,应该考虑到这些操作期间的潜在错误。

以上是如何从通过 C/C 调用的 Python 方法中提取返回值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn