Mas*_*ity 27 .net python ironpython dynamic-language-runtime
我对python很感兴趣,但是我在.NET环境中工作,所以我正在研究Iron Python,并想知道它将用于什么.
你能写一个应用程序吗?或者是否为您的应用添加脚本语言?
你们是如何使用它的?
Jon*_*eet 29
其中一个或两个:)
我不会声称知道IronPython的特定"目的",但它当然可以用来编写应用程序,它可以用于更大的.NET应用程序中的脚本.
除此之外,它还可以轻松地将Python开发人员简化为.NET世界.(为什么不同时学习C#?来吧,水可爱......)
IronPython的最大好处是它将Python和.NET的世界紧密结合在一起.
如果你有用C#编写的库(程序集),你可以直接将它们导入IronPython并使用它们,如下所示:
import clr
clr.AddReferenceToFileAndPath('MyAssembly.dll')
import MyNamespace
c = MyNamespace.MyClass()
c.MyFunction()
Run Code Online (Sandbox Code Playgroud)
这非常适合在编写脚本或甚至与IronPython解释器交互使用时重用现有的.NET代码.
普通的CPython需要Python .NET来做同样或类似的事情.根据我的经验,Python .NET大部分时间都可以工作,但并非总是如此,IronPython在从Python访问.NET方面提供了更为精彩的体验.
IronPython可能总是在标准库支持等方面落后于CPython的参考实现,但总的来说开发并不落后,因为它很难与CPython背景一起工作.
最后,CPython和IronPython之间存在一些实质性差异,人们应该注意这一点.示例 - 垃圾收集(前几天咬我...).
使用WPF的IronPython是设计我所知道的GUI的最有效方式.几乎所有下图所示的应用程序都是用IronPython编写的.出于性能原因,仅在C#或C++/CLI中完成非常小的部分.
当然,你确实错过了一些WPF/C#集成,但你在生产力方面获得了更多.

IronPython比CPython更容易扩展.您可以使用C++代码并在其上添加一个小型C++/CLI包装器.CPython没有什么比这简单.这就是我开始使用IronPython的原因,因为我厌倦了在CPython中为我的C++代码编写包装器.Boost.Python,SWIG等对我来说不起作用.