python 调用c ++ 函数带入值和返回值 示例
时间: 2024-03-01 08:54:48 浏览: 18
Python 通过扩展模块 `ctypes` 可以调用 C 和 C++ 编写的函数。下面是一个简单的示例,演示了如何在 Python 中调用 C++ 函数并传递参数和接收返回值:
假设有以下 C++ 代码,实现了一个函数 add,用于计算两个整数的和:
```c++
#include <iostream>
extern "C" {
int add(int a, int b) {
return a + b;
}
}
```
在上述代码中, `extern "C"` 是一个 C++ 语言特性,用于避免 C++ 编译器对函数名进行名称重整,保证 C++ 函数可以被 C 代码调用。函数 add 接收两个整数 a 和 b 作为参数,返回它们的和。
现在,我们可以在 Python 中通过 ctypes 模块来调用此函数:
```python
import ctypes
# 加载动态链接库
lib = ctypes.cdll.LoadLibrary('./libadd.so')
# 设置参数类型
lib.add.argtypes = [ctypes.c_int, ctypes.c_int]
# 设置返回值类型
lib.add.restype = ctypes.c_int
# 调用函数
x = 3
y = 4
z = lib.add(x, y)
print(f"The sum of {x} and {y} is {z}")
```
在上述代码中,我们首先使用 ctypes 模块加载动态链接库,并指定函数的参数类型和返回值类型。然后,我们调用函数 add 并传递参数 x 和 y,最后打印出返回值 z。需要注意的是,如果动态链接库的名字不是默认的 `libadd.so`,则需要修改 `LoadLibrary` 函数的参数。