第二章 python如何运行程序

一.python解释器介绍

Python解释器是一种让程序运行起来的程序。实际上,解释器是代码与机器的计算机硬件之间的软件逻辑层。
当Python包安装在机器上后,它包含了一些最小化的组件:一个解释器和支持的库

二.python的视角

当Python运行脚本时,第一步是把代码编译成“字节码”,之后将其转发到所谓的“虚拟机”中

1.第一步:字节码编译

当程序执行时,Python内部会先将源代码(文件中的语句)编译成所谓字节码的形式。编译是一个简单的翻译步骤,而且字节码是源代码底层的、与平台无关的表现形式。概括地说,Python通过把每一条源语句分解为单一步骤来将这些源语句翻译成一组字节码指令。这些字节码可以提高执行速度。

即,把后缀名为.pyc的文件-->后缀名为.py的文件。

Python这样保存字节码是作为一种启动速度的优化。下一次运行程序时,如果你在上次保存字节码之后没有修改过源代码的话,Python将会加载.pyc文件并跳过编译这个步骤。

2.第二步:python虚拟机(pvm)

一旦程序编译成字节码(或字节码从已经存在的.pyc文件中载入),之后的字节码发送到通常称为Python虚拟机(Python Virtual Machine,简写为PVM)上来执行。从技术上讲,它才是所谓“Python解释器”的最后一步。

3.性能的含义

在Python的工作中通常没有“build”或“make”的步骤:代码在写好之后立即运行。另外一个就是,Python字节码不是机器的二进制代码(例如,Intel芯片的指令)。字节码是特定于Python的一种表现形式。
这就是Python代码无法运行得像C或C++代码一样快的原因。

 从更基础的角度来说,牢记我们在Python中真正拥有的只有运行时:完全不需要初始的编译阶段,所有的事情都是在程序运行时发生的。这甚至还包括了建立函数和类的操作以及连接的模块。这些事情对于静态语言往往是发生在执行之前的,而在Python中是与程序的执行同时进行的。就像我们看到的那样,实际的效果就是Python比一些读者所用的程序语言带来了更加动态的编程体验。

4.CPython

原始的、标准的Python实现方式通常称作CPython。图2-2反映了CPython的运行体系结构。

5.Jython

Jython包含了Java类,这些类编译Python源代码、形成Java字节码,并将得到的字节码映射到Java虚拟机(JVM)上。程序员仍然可以像平常一样,在文本文件中编写Python语句;Jython系统的本质是将图2-2中的最右边两个方框中的内容替换为基于Java的等效实现。

6.IroPython

它替换了图2-2中最后的两个方框,将其换成.NET环境的等效执行方式。

猜你喜欢

转载自www.cnblogs.com/happytongtong/p/11098514.html