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