在Python中调用C++代码可以使用多种方法,下面介绍一种较为常见的方法,使用ctypes。
ctypes是Python标准库中的一个模块,它可以用来调用动态链接库中的C函数。首先需要将C++代码编译为动态链接库,然后使用ctypes来调用编译好的动态链接库。
以一个简单的C++函数为例,若要在Python中调用该函数,需要做如下步骤:
c++代码
using namespace std;
extern "C"{
double add(int, int);
}
double add(int x1, int x2)
{
double x3 = x1 + x2;
return x3;
}
之后打开窗口,输入以下命令,即将上述cpp文件转换为了so文件,注意so文件的名称必须以lib开头。
g++ add.cpp -fpic -shared -o libadd.so
运行Python代码
import ctypes
lib = ctypes.cdll.LoadLibrary("./libadd.so")
int_value1 = 1
int_value2 = 2
# 将函数的返回值类型设置为 double
lib.add.restype = ctypes.c_double
# 将两个整型参数传递给 add 函数
result = lib.add(int_value1, int_value2)
# 输出结果
print(result) # 3.0
经过以上的步骤外面就可以成功在Python中使用c++编写的代码啦!不过,当函数中涉及到数值类型时一定要记得设置返回值的类型,否则返回的将是错误的结果,比如上述代码取消掉lib.add.restype = ctypes.c_double时返回的result将为1。