C++项目中如何调用python函数
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍"C++项目中如何调用python函数",在日常操作中,相信很多人在C++项目中如何调用python函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C
千家信息网最后更新 2026年11月04日C++项目中如何调用python函数
这篇文章主要介绍"C++项目中如何调用python函数",在日常操作中,相信很多人在C++项目中如何调用python函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C++项目中如何调用python函数"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
代码如下,分别演示直接执行python语句、无返回无参数函数调用、返回单参数函数调用。返回多参数函数调用:
#include#include using namespace std; //执行python命令 void ExecPythonCommand() { //直接执行 PyRun_SimpleString("from time import time,ctime\n" "print 'Today is',ctime(time())\n"); } //调用无参数函数 void InvokeNoParm() { PyObject* pMod = NULL; PyObject* pFunc = NULL; //导入模块 pMod = PyImport_ImportModule("Life"); if(pMod) { //获取函数地址 pFunc = PyObject_GetAttrString(pMod, "a"); if(pFunc) { //函数调用 PyEval_CallObject(pFunc, NULL); } else { cout << "cannot find function a" << endl; } } else { cout << "cannot find Life.py" << endl; } }
//调用一参数函数
void InvokeWith2Parm() { PyObject* pMod = NULL; PyObject* pFunc = NULL; PyObject* pParm = NULL; PyObject* pRetVal = NULL; int iRetVal = 0; //导入模块 pMod = PyImport_ImportModule("FuncDef"); if(pMod) { pFunc = PyObject_GetAttrString(pMod, "square"); if(pFunc) { //创建参数 pParm = Py_BuildValue("(i)", 5); //函数调用 pRetVal = PyEval_CallObject(pFunc, pParm); //解析返回值 PyArg_Parse(pRetVal, "i", &iRetVal); cout << "square 5 is: " << iRetVal << endl; } else { cout << "cannot find function square" << endl; } } else { cout << "cannot find FuncDef.py" << endl; } }//调用多参数函数
void InvokeWith3Parm() { PyObject* pMod = NULL; PyObject* pFunc = NULL; PyObject* pParm = NULL; PyObject* pRetVal = NULL; int iRetVal = 0; //导入模块 pMod = PyImport_ImportModule("add"); if(pMod) { pFunc = PyObject_GetAttrString(pMod, "add"); if(pFunc) { //创建两个参数 pParm = PyTuple_New(2); //为参数赋值 PyTuple_SetItem(pParm, 0, Py_BuildValue("i",2000)); PyTuple_SetItem(pParm, 1, Py_BuildValue("i",3000)); //函数调用 pRetVal = PyEval_CallObject(pFunc, pParm); //解析返回值 PyArg_Parse(pRetVal, "i", &iRetVal); cout << "2000 + 3000 = " << iRetVal << endl; } else { cout << "cannot find function square" << endl; } } else { cout << "cannot find add.py" << endl; } } int main(int argc, char* argv[]) { Py_Initialize(); //python 解释器的初始化 ExecPythonCommand(); InvokeNoParm(); InvokeWith2Parm(); InvokeWith3Parm(); Py_Finalize(); // 垃圾回收、清除导入库 return 0; }到此,关于"C++项目中如何调用python函数"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
函数
参数
项目
C++
学习
模块
更多
帮助
实用
接下来
两个
代码
命令
地址
垃圾
文章
方法
理论
知识
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中智农互联网科技
互联网核心科技是什么
猪兼强互联网科技
互联网 科技创业
互联网科技媒体
互联网科技革命
九亚互联网科技
易通互联网络科技有限公司
融势互联网科技
时间互联网络科技
广州善班互联网科技
互联网科技的未来发展
互联网高科技企业
太原新华互联网科技学校怎么样
江苏南京365互联网科技
互联网科技热点资讯
广西互联网科技孵化中心
银川新华互联网科技学校联系电话
如何创新互联网科技
黑龙江互联网科技公司
互联网科技有限公司经营范围
互联网金融与金融科技
金融科技与互联网金融
互联网金融科技委员会
团飞科技与伯堂互联网服务平台
华服互联网科技官网
荆州市昕露互联网络科技有限公司
山东子淼互联网科技有限公司
伍佰万互联网科技怎么赚钱
陕西云淼互联网科技公司