前言

第一次听说Python是在开发Visual Studio Extension应用时,当时有一个著名的开源 IDE:IronPython,那是一个基于VSShell的专为IronPython设计的IDE,也算是基于VSShell的最出色的产品了,集成了编辑器,调试器。IronPython之于Python的关系,就好像C++.NET之于C++的关系(这里只是胡乱比喻一番,定有不妥之处)。

Python概述

有点扯远了,事实上对于Python,到目前为止,我是个初学者,刚刚走马观花的把Python简明教程看了一遍,这里提点自己的看法和总结,有不妥之处欢迎指正:

1.Python的解释性。不想Native code的C/C++需要编译成目标平台的二进制代码。“Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,更拽,而是说和Java或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。-----Goodspeed ”

1.Python是一门解释性的语言。执行的时候需要依靠Python解释器,就像windows或linux脚本需要脚本宿主一样,因此在执行速度上要慢于Native code的C/C++。Python跟Java/C#又有所不同,后者是编译到中间语言,由虚拟机或托管模块执行。

2.Python的跨平台性很好,目前支持mac OS、windows、linux(也许有其他的),其中mac OS和大多数的linux发行版都默认安装了Python解释器和Python库。windows下可以通过简单的安装支持Python。

3.Python的开源性必将给它带来旷阔的空间。在现在这个开源的趋势下,开源的好处被越来越多的开发者认可,越来越多的人愿意为开源作出贡献,当然包括Python在内。

4.Python的语言特性。Python面向对象的语言特性继承了现代高级语言的特点。不过个人认为,Python在面向对象的语法上实在让我这个C++、C#出生的人十分不习惯,我还是比较习惯于先声明后使用,也许是因为我还没有从静态语言的惯性思维中转过弯来吧。

5.丰富的库。除了Python的标准库,还有许多第三方的GUI库正在被认可。我还没有尝试使用这些库,不过相信由于Python的开源特性,库的数量和质量都将不断提升。

 

windows下安装Python

目前我已经不在windows下练习Python了,但是刚开始练习的时候还是习惯性的在windows下安装部署。我当时安装的是Python2.5,但是我发现安装时没有配置环境变量,使我不能在命令行下直接通过"python"运行我的脚本。当然配置环境变量不是难事,这里就不累述了。另外windows下的Python IDEL我个人觉得并不好用。windows下退出命令行模式python:Ctrl+z再回车

 

linux下Python

linux下Python几乎的默认支持的。我的Ubuntu中python是2.6.5的。linuxs下退出命令行模式python:Ctrl+D。

我习惯用gedit编辑Python源代码文件,源码文件需要在第一行包含:

#!usr/bin/python

gedit实在是十分出色,它同样支持Python的语法高亮,而且高亮元素很丰富,强力推荐:

gedit python

脚本语言太多?现在有Python了!

无论什么平台都有脚本语言,而且种类很多,语法相似,容易混淆。现在有了Python全都搞定。Python作为一种语言,处理逻辑自然不在话下;对于调用系统命令只要使用如下统一的方式:

1 commandline = "..."
2 if os.system(commandline) == 0:
3   print "success"
4 else:
5   print "failed"

只要构造一个commandline就可以了!

 

结语

编程语言在发展,语法变得越来越简单,越来越接近自然语言。我们这一代正在纠结在Native Code和Managed Code之间,Python这样的解释语言的出现,也许标志着一个新的潮流的到来,也许后辈程序员将完全不用知道Native Code,就像我们这一代多数不怎么懂汇编一样。Python也许将成为大势所趋。