IronPython 如何与 python.org 的 Python 默认 Windows 实现相叠加?如果我正在学习 Python,我会用 IronPython 学习一种微妙的不同语言吗?没有什么库我会做什么?
或者,IronPython 是否有任何优点(不包括 .NET IL 编译的类)可以使其更具吸引力?
IronPython 如何与 python.org 的 Python 默认 Windows 实现相叠加?如果我正在学习 Python,我会用 IronPython 学习一种微妙的不同语言吗?没有什么库我会做什么?
或者,IronPython 是否有任何优点(不包括 .NET IL 编译的类)可以使其更具吸引力?
有许多重要的区别:
编写代码的方式存在一些细微差别,但最大的区别在于可用的库。
使用 IronPython,您可以获得所有可用的 .Net 库,但代价是一些尚未移植到 .Net VM 的“普通”python 库。
基本上,您应该期望语法和习语相同,但是如果您尝试将 IronPython 编写的脚本提供给“常规”Python 解释器,则它不会运行。反过来可能更有可能,但我认为你也会发现差异。
请参阅博文IronPython 是一种单向门。它总结了我在 StackOverflow 上提问时学到的关于 IronPython 的一些知识。
Python 是 Python,唯一的区别是 IronPython 被设计为在 CLR (.NET Framework) 上运行,因此可以互操作和使用以其他 .NET 语言编写的 .NET 程序集。因此,如果您的平台是 Windows,并且您还使用 .NET 或您的公司使用,那么应该考虑 IronPython。
IronPython 的优点之一是,与 CPython 不同,IronPython 不使用全局解释器锁,从而使线程更有效。
在标准的 Python 实现中,线程在每个对象访问时获取 GIL。这限制了并行执行,尤其是在您希望充分利用多个 CPU 时。
Pro:如果安装了 SilverLight ,您可以在浏览器中运行 IronPython 。
这还取决于您是否希望您的代码在 Linux 上运行。不知道 IronPython 是否可以在 Windows 平台以外的任何平台上工作。