程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++調用python腳本函數基本應用指南

C++調用python腳本函數基本應用指南

編輯:C++入門知識

C++編程語言的應用方式比較靈活,而且其支持性也比較廣泛,比如可以調用C#的一些應用以及今天為大家介紹的C++調用python腳本函數的相關方法。下面就讓我們一起來看看C++調用python腳本函數的實現方法。

C++調用python腳本函數代碼如下:

  1. Py_Initialize(); //初始化 python interpreter  
  2. PyObject *pName = PyString_FromString("test1"); // python腳本文件名  
  3. PyObject *pModule = PyImport_Import(pName); // import 腳本,返回pModule  
  4. // pModule指向這個腳本對象   
  5. if ( !pModule )  
  6. {  
  7. cout<<"Can't find the file!"<<endl;  
  8. return 0;  
  9. }  
  10. cout<<"Get the function in .py"<<endl;   
  11. PyObject *pDict = PyModule_GetDict(pModule); // 通過pModule得到dictionary  
  12. // 的指針pDict  
  13. PyObject *pFunc = PyDict_GetItemString(pDict,"Add"); 
    // 通過pDict得到你所需的  
  14. // function,此處"Add"為test1.py  
  15. // 的一個funciton object  
  16. PyObject *pParam = PyTuple_New(1); // 填寫function所需要的參數  
  17. PyObject *pCurParam = PyInt_FromLong(10);  
  18. PyTuple_SET_ITEM(pParam,0,pCurParam);  
  19. PyObject *pAdded = PyObject_CallObject(pFunc,pParam);
    // 調用此function,並得到  
  20. // 返回值  
  21. int max = PyInt_AsLong(pAdded); // 將返回值轉換為c++的數據類型  
  22. cout<<"after added ,the number is "<<max<<endl;  
  23. Py_XDECREF(pAdded); // 引用計數減一  
  24. Py_XDECREF(pCurParam);  
  25. Py_XDECREF(pParam);  
  26. // Py_XDECREF(pFunc);  
  27. // Py_XDECREF(pDict);  
  28. Py_XDECREF(pModule);  
  29. Py_XDECREF(pName);  
  30. Py_Finalize(); // 關閉   
  31. python interpreter 

C++調用python腳本函數的相關方法就為大家介紹到這裡。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved