针对小规模项目的IronPython与C#

Rex*_*exE 8 .net c# python ironpython

我目前在大多数编程项目中使用Python(主要是小程序和原型的快速开发).我想花时间学习一种语言,这种语言可以让我灵活地在机会出现时使用各种Microsoft工具和API.我正在尝试在IronPython和C#之间做出决定.由于Python是我最喜欢的编程语言(主要是因为它的简洁和清晰的语法),IronPython听起来是理想的选择.在阅读了一下之后我有几个问题.

对于那些使用过IronPython的人来说,是不是已经不清楚经典Python的结束和.NET的开始?例如,.NET库和Python标准库之间的功能似乎有很大的重叠,所以当我需要进行字符串操作或解析XML时,我不清楚我应该使用哪个库.另外,我不清楚我应该在代码中使用Python与.NET数据类型.例如,我将在代码中使用以下哪项?

d = {} 
Run Code Online (Sandbox Code Playgroud)

要么

d = System.Collections.Hashtable()
Run Code Online (Sandbox Code Playgroud)

(顺便说一下,如果我做了很多像后者这样的事情,我可能会失去一些简洁性,这就是我首先支持Python的原因.)

另一个问题是,许多Microsoft的开发人员工具,如.NET CF和Xbox XNA,在IronPython中不可用.还有更多的情况,IronPython不会给我C#的全部范围吗?

use*_*650 11

我在IronPython中用C#构建了一个大型应用程序.

它几乎是完全无缝的.IronPython中唯一缺少真正"python"感觉的东西是基于C的库(必须使用.NET)和IDLE.

该语言与其他.NET语言交互,如梦......特别是如果您嵌入解释器并通过引用绑定变量.

顺便说一句,IronPython中的哈希声明:

d = {}
Run Code Online (Sandbox Code Playgroud)

请注意,它实际上是一个IronPython.Dict对象,而不是C#字典.也就是说,如果将转换传递给.NET类,转换通常会无形地工作,如果需要显式转换,那么内置函数就可以了.

总而言之,如果你有理由,可以使用.NET的一种很棒的语言.

只是一个建议:避免像瘟疫一样的Visual Studio IronPython IDE.我发现自动线完成部分在压痕,空间和标签之间搞砸了.现在 - 这是一个插入代码中的难以追踪的错误.