Learning Python第二版笔记-Chapter 1 & 2

时间:2022-12-25 14:56:08
Chapter1没有什么好记录的,主要是讲解Python能做什么,优点和缺点。读下来只有一个感觉,就是Python和JAVA非常的相似,几乎雷同,不过就是JAVA更power一些,呵呵。

Chapater2

1. Python是如何运行一个.py脚本的。首先和JAVA一样,Python要把一个.py文件翻译成所谓的byte code,这个byte code是Python自定义的一种和平台无关的语言代码。然后byte code给PVM(Python Virtual Machine),由PVM解析运行-简直和JAVA是一模一样的啊。上述过程描述成图如下:

2. 上图也可以看出,Python会把.py文件翻译成.pyc文件(这就是byte code文件),下次再执行这个py的时候,Python会检查pyc文件是否存在,如果是,那么第二步骤就可以不做了,这样可以加速py文件的执行速度--又和JAVA一样。

3. Python的多个实现,这个有点重要。首先自然是CPython,这是官方的实现,也就是说PVM这些东西,或称为Python的实现吧,是用ANSI C写的;第二个登场的是Jython(以前叫JPython),这个东东会把Python的源码先编译成JAVA格式的byte code,然后用JVM来执行;第三个是Python.NET,和Jython一样,Python.NET是将Python的源码编译成.NET的 byte code,然后由.NET的虚拟机来执行;第四个叫Psyco Just-in-Time Compiler,这个东西有意思,不过和JAVA中的Just in time又差不多,所以说Python和JAVA像极了呢。这个东西能智能的分析每个在PVM中的object、function这些东西,然后,他如果 发现某些对象或方法经常被执行或占用资源比较多时,Psyco会自动将这部分变成和平台相关的machine code,并取代原来这部分的byte code,这样就大大提高了Python的执行效率;最后一个叫Frozen Binaries,这个东西能把一个Python程序变成一个可执行文件,不过和我们所想的不一样,这个可执行文件中并不是和平台相关的二进制码, Frozen Binaries只是简单的将源码、PVM打包到了一起,这个可执行文件执行时,还是会启动PVM,然后开始执行源码,所谓,换汤不换药!