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