不知不觉就到了十月份,IronPython这条小蟒蛇也很久没跟大家say Hi了,不过与它老爸Jim从Mail List乃至他的个人blog中消失的时间相比,确实是算不了什么。今天去看了一下Mail List和Jim的blog,很意外的在Mail List中看到了Jim熟悉的名字。
在这篇久违的Message中,Jim也承认自己自从加入了MS之后,很多事情让他费神以致于不能专注到开发中来。同时,也刊出了一个求贤启事,寻求能够参与IronPython开发的程序员,看来IronPython1.0的开发已经提上日程了。在Jim的另外一个Message中,我看到了一个于我而言的新词汇 :LCG(Lightweight Code Generation),而这个新特性则是来自.Net2.0/Whidbey。由于LCG与Reflection相比的一个最大的优势就是,生成的方法所使用的内存是可以被回收的,IronPython1.0中会使用这样的机制去实现代码生成,也就是会在一定程度上替代AssemblyBuilder。有兴趣的话,可以从Mail List中获得更具体的信息。MSDN Blog上还有一篇讲LCG的post。
10月份的Mail List中还提到了不少关于IronPython的bug,譬如in运算符。在IronPython中,in运算符对于两种Python特有的Data type:Dictionary,List而言,实现是OK的,但是对于字符串和Tuple则是存在问题。我们在Interactive的环境下进行测试:
>>> "ab" in "abc"
False
>>> t = (1,2,3)
>>> 3 in t
True
>>> 4 in t
False
>>> "s" in t
True 从以上的结果,我们可以发现第一个和最后一个in运算符返回的结果都是有问题的。而这些在CPython下都能得到正确的结果。
细心的你一定会从上面看到三种比较特殊的Data Type:Dictionary,List和Tuple。下面就简单的说说这三种数据类型。首先是Dictionary,它跟HashTable很类似,是由Key/Value pair(键值对)组成,不支持直接的下标形式的访问,但是可以通过key得到相应的value。如下所示:
>>> d = {"first":1,"second":2}
>>> d["first"]
1
>>> d["third"]
Traceback (most recent call last):
File "<stdin>", line 1, in ?
KeyError: 'third'
当key错误的时候,在CPython下是会有如上的错误信息,IronPython面对这个错误的时候就是无言以对,什么都没有提示,让人莫名其妙。
接着就是List,它跟数组是很类似的,支持直接的下标形式的访问,同时也很容易的访问并生成sub List。如下所示:
>>> l = ["first", "second", "third"]
>>> l[0]
'first'
>>> l.append("fourth")
>>> l
['first', 'second', 'third', 'fourth']
>>> l.insert(2,"middle")
>>> l
['first', 'second', 'middle', 'third', 'fourth']
>>> l.remove("middle")
>>> l
['first', 'second', 'third', 'fourth']
>>> l[0:2]
['first', 'second']
通过append,insert和remove等方法可以轻松地改变List中的内容,同时通过
:运算符也容易得到Sub List,十分的灵活。
最后就是Tuple了,它跟List很象,最重要的不同就是它是Immutable的。同时,访问Tuple的速度要比访问List快,而且,Tuple本身是不可变的,因此Tuple就与Constant类似了。如下所示:
>>> t = ("first", "second","third")
>>> t[0]
'first'
>>> t.append("fourth") // Error
>>> t.remove("second") // Error 上面简要的介绍了一下Python中比较特殊的三种Data Type,有兴趣的朋友可以从
Dive Into Python中得到更多的信息。
分享到:
相关推荐
在.NET 6中调用IronPython来实现动态执行脚本是一项强大的功能,它允许程序员在运行时编写和执行Python代码,极大地增强了应用的灵活性。IronPython是一个开源的Python实现,它能够无缝集成到.NET环境中,使得.NET...
IronPython的1.0版本在2006年9月5日正式发布,标志着该项目进入了成熟阶段。自那时以来,它经历了多次更新和改进,增强了性能,优化了与.NET框架的集成,并修复了许多bug。IronPython的最新版本支持Python 3的语法...
- **第5章:与结构和对象交互** 深入探讨IronPython中面向对象编程的概念和技术,如继承、多态等。 - **第6章:使用Python标准库** 讲解IronPython如何利用Python的标准库资源,扩展其功能。 - **第7章:访问...
IronPython是一种基于.NET框架的Python实现,它允许开发者在.NET平台上使用Python语法编写代码,并能够无缝集成.NET生态系统中的各种资源。IronPython与传统的CPython(标准Python解释器)相比,最大的优势在于它...
5. 性能和调试:讨论IronPython的性能特点,比较与标准CPython的差异,以及如何优化代码。此外,也会介绍在.NET环境中调试IronPython代码的方法和工具。 6. 扩展和自定义:可能涉及如何使用IronPython编写.NET组件...
标题中的"IronPython-2.7.7.msi"指的是IronPython的一个版本,这是一个开源的Python实现,可以在.NET Framework上运行。它允许开发者使用Python语言编写应用程序,同时利用.NET平台的强大功能。金蝶云,另一方面,是...
5. **集成开发环境(IDE)支持**:由于IronPython是.NET的一部分,它能很好地与Visual Studio等IDE集成,提供语法高亮、自动完成和调试功能。 6. **单元测试与持续集成**:IronPython可以使用.NET的单元测试框架如...
5. **动态编译**:IronPython代码可以被即时编译成中间语言(IL),从而获得更高的执行效率。这种动态编译技术使得IronPython能够在保持脚本语言灵活性的同时,提高运行时性能。 6. **开发工具支持**:由于是.NET的...
IronPython是一种开源的Python实现,它能够无缝地与.NET Framework集成,允许开发者使用Python语言编写.NET应用程序。在.NET环境中,IronPython提供了与C#、VB.NET等其他.NET语言的互操作性,使得Python开发者可以...
- **IronPython 3.4.0a1**:这是一个测试版,对应Python 3.4的第一个alpha版本。Python 3.x引入了许多重大改变,包括语法更新和向后不兼容的改进。这个版本的IronPython让开发者可以尝试Python 3的新特性,但可能...
5. **构建脚本**:如果包含的话,这可能是用于编译和打包IronPython的脚本,对于想要自定义或扩展IronPython的人来说非常有价值。 通过学习这些源码和示例,开发者可以了解到如何在C#项目中集成Python脚本引擎,...
5. **C#调用IronPython**:C#可以通过`PythonEngine`类来执行IronPython脚本,创建Python上下文,并调用Python函数。例如,可以使用`PythonEngine.ExecuteFile()`来运行Python脚本,或者使用`PythonEngine.Import...
【IronPython2.0最新版本】是Python编程语言的一个实现,它允许开发者在.NET Framework上运行Python代码。这个实现由Microsoft开发,旨在提供一个与标准CPython解释器兼容的环境,同时利用.NET平台的高性能和丰富的...
IronPython-2.7.5 是一个开源项目,它允许开发者在 .NET Framework 上运行 Python 代码,并且能够与 C# 程序无缝集成。这个版本是 IronPython 的一个重要里程碑,提供了对 Python 2.7.5 版本的支持。在本文中,我们...
IronPython保留了Python的简洁和易读性,但运行于.NET之上,因此学习Python的基本概念是开始IronPython之旅的第一步。 2. **.NET Framework**:IronPython能够无缝集成到.NET Framework中,这意味着你可以访问.NET...
[Apress] IronPython 高级程序设计 (英文版) [Apress] Pro IronPython (E-Book) ☆ 出版信息:☆ [作者信息] Alan Harris [出版机构] Apress [出版日期] 2009年06月22日 [图书页数] 312页 [图书语言] 英语 ...
IronPython IDE是一款基于C#语言开发的集成开发环境(IDE),专为IronPython编程语言提供支持。IronPython是Python的一种实现,它运行在.NET Framework或Mono框架之上,能够充分利用.NET平台的强大功能。这款IDE旨在...
在本文中,我们将深入探讨如何在Visual Studio 2010 (VS2010) 中使用C# 4.0来调用IronPython脚本,这是一个强大的动态语言运行时,能够让我们在.NET环境中执行Python代码。IronPython使得C#开发者能够轻松地利用...
标题中的"IronPython|2.7-32"指的是IronPython的一个特定版本,它是一个开源实现的Python解释器,能够运行在.NET Framework和.NET Core上。IronPython 2.7-32是针对32位操作系统的版本。描述中提到的问题是关于...