首页 > 后端开发 > C++ > 如何检索从 C/C 调用的 Python 方法的返回值?

如何检索从 C/C 调用的 Python 方法的返回值?

DDD
发布: 2024-12-07 06:36:16
原创
385 人浏览过

How Can I Retrieve the Return Value of a Python Method Called from C/C  ?

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

本文演示了如何从 C/C 调用 Python 方法并提取其返回值。虽然问题中提供的代码可以有效地将结果打印到 stdout,但它没有提供捕获值以在 C 中进一步操作的方法。

推荐的方法涉及利用 Python C 提供的方法 - API,支持与 Python 对象和函数直接交互。下面是如何修改代码以提取返回值的示例:

PyObject* myModuleString = PyString_FromString((char*)"mytest");
PyObject* myModule = PyImport_Import(myModuleString);
PyObject* myFunction = PyObject_GetAttrString(myModule, (char*)"myabs");
PyObject* args = PyTuple_Pack(1, PyFloat_FromDouble(2.0));
PyObject* myResult = PyObject_CallObject(myFunction, args);
double result = PyFloat_AsDouble(myResult);
登录后复制

在此代码中,我们首先导入模块,获取对函数的引用,使用函数的参数创建一个元组,调用函数,最后提取双精度值的返回值。

为了确保正确处理,必须正确管理错误,正如 Mark Tolonen 在评论中所建议的那样。有关更多信息和复杂的用例,请参阅 Python C-API 文档:http://docs.python.org/c-api/。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板