代码改变世界

IronPython的第一块鳞片

2004-09-11 03:35  FantasySoft  阅读(2519)  评论(0编辑  收藏

        今天在写blog的时候,我看到了链接栏上的两位已经被冷落了好久的朋友:Python和Twisted。回想一下自己的计划,既然已经付出了学习的努力,为什么不坚持下去呢?我想是时候重新去关注Python,关注Python与.NET平台的联姻了。首先自己是一个动态脚本语言的疯狂爱好者,javascript就是自己很喜爱并且使用得比较熟练的语言之一,虽然大家对她有着或多或少的偏见;其次,自己已经将Python的Tutorial看了大半,对Python也有了一定的了解,而且本blog开张的第一篇就是.NET上的Python,就这样把她冷落了,怎生是好呢?还有就是我要尽作为博客园一分子的义务——专注于.NET技术,想想自己有写过多少关于.NET的东西呢?还在blog的开张第二篇中称.NET是维纳斯呢,真是惭愧啊!我想就从今天开始吧,以IronPython作为专注于.NET的方向,让各位高手见证我的学习历程吧!希望各位高手多多批评,多多指教了。尤其是最近在关注IronPython的两位朋友:CureccBoy
        模仿一下Python Tutorial的做法,今天就先来一份关于IronPython的开胃菜吧。IronPython是由大名鼎鼎的Jython/JPython的作者Jim Hugunink主持开发的,他开发IroPython的源动力也很有意思,原来他是计划写一篇文章来证明"Why .NET is a terrible platform for dynamic languages"的,然而深入的研究让他改变了主意,因为他发现CLR是建造动态语言极好的平台。而他本人更是在8月2号加入了Microsoft,在那里他可以更加专心于IronPython的开发。目前IronPython的版本号为0.6,可以到IronPython.com下载运行版本和源代码。
        IronPython本身是由C#实现的(Jim精通的语言可真多啊),在下载包中有源代码可以参考。IronPython本身具有以下特点:
        1、速度要比用C实现的Python快;
        2、与CLR集成,可以调用CLR中的类库;
        3、保持着良好的动态性;
        好了,说了那么多,还是先来一段最经典的代码吧:

>>> class FantasySoft:
        def hello(self):
            print 
"Hello,world!"


>>> t = FantasySoft()
>>>
 t.hello()

        HelloWorld的完全.NET版请见Cure老大写的IronPython的Hello World
        在这里需要说明的几个地方:作为一个Python程序,缩进是十分重要,因为在Python中并没有通过类似Java或者C++那样使用{}划分代码段,而是通过缩进体现了结构;第二点就是作为类方法的第一个参数self,这个参数本身并没有太大的意义,就相当于我们常见的this,但是每一个方法都必须包含这个参数,而且是一定要出现在第一位。
        就先到这里吧,好象有点晚了,呵呵~~