自从加入到IronPython在GotDotNet的Workspace后,除了submit几个bug之外,一直都鲜有贡献。不过我倒也没事偷着乐,毕竟,IronPython的进步也是来源于不断的bug fix啊。对于最新的IronPython 0.7.6,我也submit了一个bug。你可以在Interactive Mode下键入如下代码以重现这个bug:
在 一长串正常的输出之后,最终抛出了System.NotImplementedException。也许有些朋友对于Python的语法并不是太熟悉,我 就先来解释一下上面的三行代码。第一行代码中的变量list在赋值之后,其类型为Python的基本类型的一种:List;第二行代码中的dir方法返回 一个List,这个List中则包含了List类型(参数list本身就是List类型)所有可用方法的列表。在第二行代码中,你还可以看到Python 语法中唯一的代码分隔符号——冒号(:);第三行代码中的getattr方法则返回List类型中每一个方法的属性。同时,在第三行代码中,你也可以看到 Python所特有的通过缩进(indent)来区分code block。一开始,我认为是方法getattr的错。最后仔细想了一下,问题还是出在List类型的方法的列表中:方法列表中包含了还没有 implement的方法,从而导致了Exception的抛出。
IronPython 0.7.6发布到现在已经一个多月了,我想0.7.7的发布也不会远了,热切期待中。