如何在Python中调用C++代码(使用ctype方法)

在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。

猜你喜欢

转载自blog.csdn.net/change_xzt/article/details/131294860