C++编程语言的应用方式比较灵活,而且其支持性也比较广泛,比如可以调用C#的一些应用以及今天为大家介绍的C++调用python脚本函数的相关方法。下面就让我们一起来看看C++调用python脚本函数的实现方法。
C++调用python脚本函数代码如下:
- Py_Initialize(); //初始化 python interpreter
- PyObject *pName = PyString_FromString("test1"); // python脚本文件名
- PyObject *pModule = PyImport_Import(pName); // import 脚本,返回pModule
- // pModule指向这个脚本对象
- if ( !pModule )
- {
- cout<<"Can't find the file!"<<endl;
- return 0;
- }
- cout<<"Get the function in .py"<<endl;
- PyObject *pDict = PyModule_GetDict(pModule); // 通过pModule得到dictionary
- // 的指针pDict
- PyObject *pFunc = PyDict_GetItemString(pDict,"Add");
// 通过pDict得到你所需的- // function,此处"Add"为test1.py
- // 的一个funciton object
- PyObject *pParam = PyTuple_New(1); // 填写function所需要的参数
- PyObject *pCurParam = PyInt_FromLong(10);
- PyTuple_SET_ITEM(pParam,0,pCurParam);
- PyObject *pAdded = PyObject_CallObject(pFunc,pParam);
// 调用此function,并得到- // 返回值
- int max = PyInt_AsLong(pAdded); // 将返回值转换为c++的数据类型
- cout<<"after added ,the number is "<<max<<endl;
- Py_XDECREF(pAdded); // 引用计数减一
- Py_XDECREF(pCurParam);
- Py_XDECREF(pParam);
- // Py_XDECREF(pFunc);
- // Py_XDECREF(pDict);
- Py_XDECREF(pModule);
- Py_XDECREF(pName);
- Py_Finalize(); // 关闭
- python interpreter
C++调用python脚本函数的相关方法就为大家介绍到这里。
【编辑推荐】