板上各位大大好
最近工作有接触到 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 是在什么情境会需要?
这种程式开发方法会是主流吗? 谢谢~