C++調(diào)用python腳本函數(shù)基本應(yīng)用指南
作者:佚名
我們今天將會(huì)通過(guò)一段代碼為大家詳細(xì)介紹一下有關(guān)C++調(diào)用python腳本函數(shù)的一些應(yīng)用方式,希望大家可以從中掌握到一些應(yīng)用技巧。
C++編程語(yǔ)言的應(yīng)用方式比較靈活,而且其支持性也比較廣泛,比如可以調(diào)用C#的一些應(yīng)用以及今天為大家介紹的C++調(diào)用python腳本函數(shù)的相關(guān)方法。下面就讓我們一起來(lái)看看C++調(diào)用python腳本函數(shù)的實(shí)現(xiàn)方法。
C++調(diào)用python腳本函數(shù)代碼如下:
- Py_Initialize(); //初始化 python interpreter
- PyObject *pName = PyString_FromString("test1"); // python腳本文件名
- PyObject *pModule = PyImport_Import(pName); // import 腳本,返回pModule
- // pModule指向這個(gè)腳本對(duì)象
- if ( !pModule )
- {
- cout<<"Can't find the file!"<<endl;
- return 0;
- }
- cout<<"Get the function in .py"<<endl;
- PyObject *pDict = PyModule_GetDict(pModule); // 通過(guò)pModule得到dictionary
- // 的指針pDict
- PyObject *pFunc = PyDict_GetItemString(pDict,"Add");
// 通過(guò)pDict得到你所需的- // function,此處"Add"為test1.py
- // 的一個(gè)funciton object
- PyObject *pParam = PyTuple_New(1); // 填寫(xiě)function所需要的參數(shù)
- PyObject *pCurParam = PyInt_FromLong(10);
- PyTuple_SET_ITEM(pParam,0,pCurParam);
- PyObject *pAdded = PyObject_CallObject(pFunc,pParam);
// 調(diào)用此function,并得到- // 返回值
- int max = PyInt_AsLong(pAdded); // 將返回值轉(zhuǎn)換為c++的數(shù)據(jù)類(lèi)型
- cout<<"after added ,the number is "<<max<<endl;
- Py_XDECREF(pAdded); // 引用計(jì)數(shù)減一
- Py_XDECREF(pCurParam);
- Py_XDECREF(pParam);
- // Py_XDECREF(pFunc);
- // Py_XDECREF(pDict);
- Py_XDECREF(pModule);
- Py_XDECREF(pName);
- Py_Finalize(); // 關(guān)閉
- python interpreter
C++調(diào)用python腳本函數(shù)的相關(guān)方法就為大家介紹到這里。
【編輯推薦】
責(zé)任編輯:曹凱
來(lái)源:
博客園