写一段C++调用python多参数函数的程序
时间: 2024-03-16 10:47:41 浏览: 92
详解C++调用Python脚本中的函数的实例代码
下面是一个简单的 C++ 调用 Python 多参数函数的示例程序:
```cpp
#include <Python.h>
int main(int argc, char *argv[])
{
// 初始化 Python 解释器
Py_Initialize();
// 导入 Python 模块
PyObject* pModule = PyImport_ImportModule("test");
// 获取 Python 函数对象
PyObject* pFunc = PyObject_GetAttrString(pModule, "add");
// 创建 Python 参数元组
PyObject* pArgs = PyTuple_New(2);
PyTuple_SetItem(pArgs, 0, PyLong_FromLong(2));
PyTuple_SetItem(pArgs, 1, PyLong_FromLong(3));
// 调用 Python 函数并获取返回值
PyObject* pResult = PyObject_CallObject(pFunc, pArgs);
// 解析 Python 返回值
long result = PyLong_AsLong(pResult);
// 打印结果
printf("2 + 3 = %ld\n", result);
// 释放 Python 对象
Py_DECREF(pArgs);
Py_DECREF(pResult);
Py_DECREF(pFunc);
Py_DECREF(pModule);
// 关闭 Python 解释器
Py_Finalize();
return 0;
}
```
上述示例代码假设你已经编写了一个 Python 模块 `test`,其中包含一个名为 `add` 的函数,该函数接受两个整数参数并返回它们的和。
要编写这个 Python 模块,你可以使用以下代码:
```python
def add(x, y):
return x + y
```
在 C++ 中,我们首先需要初始化 Python 解释器,并导入包含 `add` 函数的 Python 模块。然后,我们获取 `add` 函数的 Python 对象,并创建一个包含两个整数参数的 Python 参数元组。最后,我们调用 `PyObject_CallObject` 函数来调用 Python 函数,并使用 `PyLong_AsLong` 函数解析函数的返回值。
阅读全文