Archive note: Recovered from the Wayback Machine. 5 historical images referenced by the original page were not captured; their positions are marked below.
1.1 Python背景·了解
1、Python采取了一种极简主义的设计理念
2、Python致力于开发速度的最大化:简洁的语法、动态类型、无需编译、内置工具包等特性是程序员能够快速的完成项目开发,而使用其他开发语言这需要几倍的时间。
3、一般来说,Python可定义为面向对象的脚本语言:这个定义将对面向对象的支持和面向脚本语言的角色融合在一起。
脚本更加倾向于描述简单的顶层代码文件,而程序则用来描述那些相对复杂一些的多文件应用。
4、Python的执行速度不够快,和C/C++相比还有很大的差距。
Python几乎在所有的应用领域无所不能。
1.2 What Python can do ?
1、系统编程
2、用户图形接口
3、internet脚本
4、组件组成
5、数据库编程
6、快速原型
7、数值计算和科学计算编程
8、游戏、图形、人工智能、XML、机器人等
1.3 The advantage of Python
1、面向对象:根本上讲Python是一种面向对象的语言,它的类支持多态、操作符重载和多重继承等高级该概念,并且以Python特有的简洁的语法和类型,OOP十分易于使用。而且Python既支持面向对象也支持面向过程编程的模式。
2、免费,完全开放源码,社区驱动。
3、可移植,跨平台,多终端
4、功能强大:动态类型、自动内存整理、大型程序支持、内置对象类型、内置工具、库工具、第三方工具
5、可混合,与C/C++灵活混合调用。
6、简单易用,简单易学!
1.4 How to run the code of Python?
首先说明,Python是一种解释性语言,其”编译器”也被称为Python解释器。
*Python程序的执行:*
首先从程序员的角度来看,就是代码运行的得到了我们预期的结果。
其次从Python的视角,是如下运行的:
第一步就是编译成所谓的”字节码”,即是字节码编译。这一点和Java很类似。具体过程如下所述:当程序执行时,Python内部会先将源代码编译成所谓的字节码的形式。编译是一个简单的翻译步骤,而且字节码是源代码底层的、与平台无关的表现形式。概括地说,Python通过把每一条源语句分解为单一步骤来将这些源语句翻译成一组字节码命令。这些字节码可以提高执行效率:比起文本文件原始的源代码语句,字节码的运行速度很快。(*.pyc文件)
*PVM Python虚拟机*
一旦程序编译成字节码(或者字节码从已经存在的.pyc文件中载入),之后的字节码发送到通常被称为Python虚拟机上来执行。PVM就是迭代运行字节码的指令的一个大循环,一个接一个的完成操作。PVM是Python的运行引擎他时常表现为Python系统的一部分,并且它是实际运行脚本的组件。从技术上说,他才是所谓的”Python解释器”的最后一步。
*性能的含义*
说了上面的程序执行过程,你或许就明白,Python工作中没有build或者make的步骤,代码在写好之后立即运行,而且字节码不是机器的二进制码,是特定于Python的一种表现形式。
这就是为什么Python的代码运行不能和C/C++ 一样快!
*Python实现的替代者*
有Jython和CPython以及IronPython
*执行优化工具*
上述三种都是通过同样的方式实现Python语言,即通过把源代码编译为字节码,然后再合适的虚拟机上执行这些代码。但是这里有一些不同的系统,包括Psyco即时编译器以及Shedskin C++转换器,试着优化了基本执行模块。具体不再赘述,详情请参阅有关资料。
*冻结二进制文件*
通过网路上获得一些第三方工具,将Python程序转换为可执行程序(Python世界中称之为冻结二进制文件)。冻结二进制文件能够将出现的字节码、PVM(解释器)以及任何程序所需的Python支持文件捆绑在一起形成一个单独的文件包(比如Windows的exe文件)。
冻结二进制文件和真实的编译输出结果有所不同:他们通过虚拟机执行字节码。因此如果离开了必要的初始改进,冻结二进制文件和最初的园地阿妈程序运行速度完全相同。
因为在冻结二进制文件中嵌入了Python,接收端并不需要安装Python就可以执行这些二进制文件。
*ELSE*
Stackless Python系统是标准的CPython实现的一个变体。
Cython 系统是一种混合的语言,它为Python代码结合了调用C函数以及使用变量、参数和类属性的C类型声明的能力。
以上内容具体请搜索阅读有关资料。
*To Future*
将来的Python实现可能不再现在的这样的字节码加虚拟机执行,有可能是将源代码编译为机器码,或者其他的优化实现思路,有可能在某种程度上改变Python的运行的结构。
Just wait !
*SUM TIPS:*
-
软件质量、开发者效率、程序的可移植性、标准库的支持、组件集成和享受简便是人们选择Python的主要原因。
-
Python的主要缺点在于其性能。
-
Import this 是python的一颗彩蛋,不信你试试!哈哈!
-
Python中真正拥有的只有运行时:完全不需要初始的编译阶段,所有的事情都是在程序运行时发生的。
-
在之前的学习中,我们知道只有第一次导入模块时候会运行一次该模块,但是如果真想要Python在同一次会话中再次运行文件,可以调用imp标准模块中的reload函数(在Python2.6中是内置的,3.X不再内置)。
-
除了reload函数,还有一个exec运行模块,它不会在技术上导入模块,默认情况下,每次以这种方式调用exec的时候,他都会重新运行文件。
[Historical image unavailable in the recovered snapshot:
040714_1529_1.png]. -
模块也有类属性:
[Historical image unavailable in the recovered snapshot:
040714_1529_2.png].[Historical image unavailable in the recovered snapshot:
040714_1529_3.png].[Historical image unavailable in the recovered snapshot:
040714_1529_4.png].
[Historical image unavailable in the recovered snapshot: 040714_1529_5.png].