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腳本函數的相關方法就為大家介紹到這裡。