1. 程式人生 > >嵌入Python | 調用Python模塊中有參數的函數

嵌入Python | 調用Python模塊中有參數的函數

ans 版本 元組 docs 並且 building img weight target

開發環境
Python版本:3.6.4 (32-bit)
編輯器:Visual Studio Code
C++環境:Visual Studio 2013

需求說明
前一篇《在C++中嵌入Python|調用無參數的函數》中我們成功的在C++主程序中嵌入了Python,並且調用了Python模塊中的一個無參數的函數。這一篇我們將在此基礎上,實現在主程序中調用Python模塊中有參數的函數,使兩者互動起來

0 準備say_hi.py模塊

在say_hi.py中增加含有一個參數的函數prt_hello和含有兩個參數的函數zl_add,完整代碼如下圖:
技術分享圖片

1 主程序中調用含有一個參數的函數

將主程序中的數據作為參數直接傳入Python模塊中函數,肯定是不行的,這中間需要進行轉換。參數要以tuple元組的形式傳入

,即需將主程序的數據轉換為元組。
主程序源代碼:

技術分享圖片

主程序運行結果:

技術分享圖片

2 主程序中調用含有兩個參數的函數

通過如下示例介紹一下兩種構造參數元組的方法:
主程序源代碼:

技術分享圖片

主程序運行結果:

技術分享圖片
其它情況下的參數類似以上的處理方法,詳細參考官方文檔:https://docs.python.org/3/c-api/arg.html#building-values

3 下篇預告

  • 在主程序中對Python模塊中函數的返回值加以解析
  • 總結Py_BuildValue的用法

嵌入Python | 調用Python模塊中有參數的函數