提取从 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中文网其他相关文章!