`

IronPython的第四块鳞片

阅读更多
        尽管每天都会关注Jim的blog,关注IronPython的Mail List,但是这几天来都没有什么收获,不仅Jim的blog都快发霉了,Mail List这两三天竟然也没有新的Mail,让我好生失望。看来一切的东西都得靠自己去摸索了,原本想拿着IronPython的源代码研读一番,怎奈天生愚钝,《Code Reading》那本好书又没有带在身上,看代码如同在蜀道行走一般。看来从Python本身入手,并穿插与IronPython的比较或许更加切合我的实际水平了。
        今天先来说一点Python与其他语言不同的地方。Python也和Java一样,号称Everything is Object,但是两者在概念上却是有很大的不同。首先,Java所谓的Everythins is Object就是所有的代码都必须以类的形式出现,而Python则不是,Python可以定义单独定义function,但是每个function却是实实在在的Object。大家看以下的代码:    
>>>def HelloWorld():
     
""" Say "Hello,World"
         Say "Hello,World" again """

>>> print HelloWorld.__doc__         # 这样的调用方式不就是对一个对象中的属性进行访问吗?
        以上仅仅是定义了一个空的函数,但是函数体中包含了该函数的document。一个函数的document string必须出现在函数名称后面的第一行,也就是在函数名与document string之间不能有任何的代码;除此之外,必须使用三个"来定义作为document string的范围。实质上每一个function被定义之后,都会包含许多built-in的属性,__doc__就是其中的一个,以上的代码在解释执行的时候,就会将两个"""之间的字符串赋给__doc__属性。除了__doc__属性之外,一个function还有很多其他的built-in属性,我们可以通过dir(funtion name)来获得。
        以上代码在Python下是没有问题,但是IronPython却让我很是失望,它在Interactive的模式下只能够支持单行的document string,如果像以上的多行的方式,则会陷入一个死循环,直至抛出System. IndexOutOfRangeException: Index was outside the bounds of the array。但是如果将以上代码存为.py文件,通过IronPythonConsole *.py的方式来执行,则是没有问题的。看来IronPython的Interactive方式还存在着很多的bug。同时,通过dir(function name)也可以发现IronPython中的built-in属性并没有与Python完全兼容,缺少了很多属性,同时也增加很多新的属性:如'Call','Equals', 'GetHashCode', 'GetMethod', 'GetType', 'ToString'等。
        今天就先到这里了,大家会不会觉得有点无趣呢?看来我得检讨一下,然后再来点能吸引眼球的了。
        Any proposal is welcome.Thanks!
分享到:
评论

相关推荐

    IronPython安装python第三方库的必须工具setuptools-py2.7.egg

    总之,setuptools-py2.7.egg是针对IronPython的特殊解决方案,它使得在.NET框架内管理Python第三方库成为可能。通过正确安装和使用setuptools,开发者可以在IronPython环境中充分利用Python生态系统的丰富资源,提升...

    IronPython-2.7.5.zip

    9. **库支持**:IronPython能够导入和使用许多Python第三方库,尽管可能需要一些适配工作,特别是那些依赖于C扩展的库。 10. **工具集成**:IronPython可以很好地与Visual Studio等.NET开发工具集成,提供调试、...

    IronPython-2.7.4(内附样例程序)

    IronPython-2.7.4 是一个开源的Python实现,它是专门为.NET Framework和 Mono 平台设计的。这个版本的IronPython兼容Python 2.7的语法和库,允许开发者在.NET环境中运行Python代码,同时也支持与.NET组件的无缝集成...

    在.Net6中调用IronPython实现动态执行脚本

    在.NET 6中调用IronPython来实现动态执行脚本是一项强大的功能,它允许程序员在运行时编写和执行Python代码,极大地增强了应用的灵活性。IronPython是一个开源的Python实现,它能够无缝集成到.NET环境中,使得.NET...

    Professional IronPython.pdf

    - **第4章:使用数组和集合** 介绍IronPython中的数组和集合操作方法,包括基本操作、高级技巧及优化策略。 ##### 第二部分:进阶技术 - **第5章:与结构和对象交互** 深入探讨IronPython中面向对象编程的概念...

    ironpython.zip

    IronPython是一种基于.NET和Mono平台的Python实现,它是由Jim Hugunin开发的,而他也是Jython的创始人。这个项目的主要目标是提供一个与标准CPython解释器兼容的Python环境,同时利用.NET框架的强大功能。IronPython...

    IronPython in Action.pdf

    《IronPython in Action》是一本专门探讨IronPython技术的权威著作。IronPython是Python编程语言的一个实现,它允许开发者在.NET Framework和Mono平台上编写Python代码,并能无缝集成.NET类库。这本书深入浅出地介绍...

    微软IronPython源码

    4. **.NET互操作性**:IronPython通过CLS Compliance(公共语言规范)与.NET组件兼容,使得Python代码可以像使用.NET语言那样使用.NET组件。 5. **C#与Python的协同工作**:IronPython使得Python和C#开发者可以共享...

    IronPython in Action 无水印pdf版

    IronPython in Action 无水印pdf版。 IronPython in Action 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络 IronPython Action

    IronPython-2.7.7.msi 金蝶云 调试python脚本环境搭建。

    标题中的"IronPython-2.7.7.msi"指的是IronPython的一个版本,这是一个开源的Python实现,可以在.NET Framework上运行。它允许开发者使用Python语言编写应用程序,同时利用.NET平台的强大功能。金蝶云,另一方面,是...

    IronPython-1.1.1

    4. 文档:包含了用户指南、API参考和示例代码,帮助开发者了解如何使用IronPython。 5. 工具:可能包括调试器、性能分析工具和其他辅助开发工具。 通过IronPython,Python开发者可以享受.NET平台带来的高性能、跨...

    IronPython.zip

    IronPython是一种实现Python编程语言的开源版本,它可以在.NET Framework和.NET Core上运行。这个名为"IronPython.zip"的压缩包文件提供了一个C#使用IronPython的实例,这对于那些想要在C#应用中嵌入Python解释器...

    IronPython-2.7.11.rar

    4. **Python标准库支持**:尽管IronPython是为.NET构建的,但它仍然支持大部分Python标准库。这意味着Python开发者可以在.NET环境中使用他们熟悉的库和模块。 5. **动态编译**:IronPython代码可以被即时编译成中间...

    IronPython in Action 2012.pdf

    - 第一个 IronPython 程序 - 基本语法与数据类型 3. **.NET 对象与 IronPython 的交互** - .NET Framework 简介 - IronPython 如何操作 .NET 对象 - 面向对象编程在 IronPython 中的应用 4. **核心开发技术** ...

    IronPython.7z

    4. **安装文件(.msi)**:IronPython-3.4.0a1.msi和IronPython-2.7.11.msi是Windows Installer包,用于在Windows系统上安装对应的IronPython版本。这些MSI文件包含了所有必要的依赖和配置信息,用户只需双击即可...

    IronPython和C#交互

    4. **动态类型**:在IronPython中,所有对象都被视为动态类型,这使得它能够方便地调用C#的非静态方法和属性,即使在编译时不知道具体的类型。 5. **C#调用IronPython**:C#可以通过`PythonEngine`类来执行Iron...

    IronPython2.0最新版本以及IDE等源码

    【IronPython2.0最新版本】是Python编程语言的一个实现,它允许开发者在.NET Framework上运行Python代码。这个实现由Microsoft开发,旨在提供一个与标准CPython解释器兼容的环境,同时利用.NET平台的高性能和丰富的...

    Atom-ironpython-stubs,通用ironpython/.net库的自动完成存根.zip

    Atom-ironpython-stubs是一个专为IronPython和.NET框架开发者设计的工具,它提供了一套自动完成的存根(stubs)文件。这些存根文件主要用于增强开发环境的代码补全功能,帮助程序员在使用IronPython进行.NET库的交互...

    IronPython-2.7.7-win.zip

    4. **标准库支持**:IronPython包含了Python的标准库,尽管并非所有模块都完全兼容,但大部分常用模块都能正常工作。 5. **IDE支持**:由于是.NET的一部分,IronPython可以很好地与Visual Studio等.NET IDE集成,...

Global site tag (gtag.js) - Google Analytics