python3与C/C++语言混合编程,是一个常用的协作方式,可以结合Python3的方便及强大的库与C/C++的高效与快捷。
混合编程时C语言文件需要提供以下几部分的支持:
- 包含Python.h,对此需要通过:sudo apt-get install python3-dev 进行安装
- C语言的功能实现函数
- Python的模块接口
- Python的接口映射函数
- Python模块的初始化函数
//func.c
#include <Python.h> //包含Python.h头文件,以引入python的数据结构
#include <stdio.h>
#define NULL 0
//C语言的功能实现函数
static int do_add(int a, int b)
{
int sum = a + b;
printf("c call do_add, %d + %d = %d\n", a, b, sum);
return sum;
}
//Python的模块接口函数
static PyObject* add(PyObject *self, PyObject *args)
{
int a = 0, b = 0;
if(!PyArg_ParseTuple(args, "ii", &a, &b)) //通过PyArg_ParseTuple获得Python模块调用时,传递的函数参数
{
return NULL;
}
int result = do_add(a, b); //调用C语言功能实现函数,完成具体的功能