板上各位大大好
最近工作有接觸到 Pythonnet
想請教一下有使用過 Pythonnet 大大的經驗
我們部門軟體的核心架構是使用.NET ( UI, Custom Class, Custom Collection... )
為了使程式外部化,將部分功能的模組寫在 Python
透過 Pythonnet 就可以在 .NET 動態執行 Python Script
Python 的好處是有很多現成的 Package 可以縮短軟體開發的時間
但 Python 與 .NET 是兩種不同的語言,資料結構當然也不同
在這種使用情境下寫的 Python Code 傳入的變數若是定義在 .NET 的物件
則必須在 Python method 裡操作 .NET 物件的 property , method
要怎麼使用 .NET 物件還得回去看 C# 寫的 Source Code
且這種方式很難 Debug Python Code
因為 App 是 .NET,故 IDE 只能 Debug .NET 的部分
若 Python Script 寫的很複雜或呼叫很多層,要 Debug Python 就只能到處加 Print
而 Python Script 執行結束後,所有變數都會消失
若要 Keep 住某些 Python 變數的狀態或資料,必須要先轉成 .NET 物件並存到 .NET
Collection
其他 Python Script 要使用已保留資料,就必須再去從 .NET Collection 把資料拿出來
因為高度相依 .NET 建立的資料結構及物件,若沒有使用我們部門的 .NET 核心,這些
Python 模組不能單獨使用
寫出來的 Python Code 感覺變得很奇怪,不像是 Python
雖然有問過部門前輩現行做法的奇怪之處,但得到的回應是 習慣就好了 (疑?
因此想問看看板上大大在 .NET 使用 Pythonnet 是在什麼情境會需要?
這種程式開發方法會是主流嗎? 謝謝~