📜  理解Python程序的执行

📅  最后修改于: 2022-05-13 01:55:26.060000             🧑  作者: Mango

理解Python程序的执行

本文旨在详细介绍Python程序的执行。让我们考虑下面的例子。

例子:

Python3
a = 10
b = 10
print("Sum ", (a+b))


输出:

Sum  20

假设上面的Python程序保存为first.py 。这里首先是名称,.py 是扩展名。 Python程序的执行涉及2个步骤:

  • 汇编
  • 口译员

汇编

程序被转换成字节码。字节码是一组固定的指令,代表算术、比较、内存操作等。它可以运行在任何操作系统和硬件上。字节码指令在.pyc文件中创建。 .pyc 文件没有显式创建,因为Python在内部处理它,但可以使用以下命令查看:

-m 和 py_compile 分别代表模块和模块名称。该模块负责生成 .pyc 文件。编译器创建一个名为 __pycache__ 的目录,其中存储了 first.cpython-38.pyc 文件。

口译员

下一步涉及将字节码(.pyc 文件)转换为机器码。这一步是必要的,因为计算机只能理解机器代码(二进制代码)。 Python虚拟机(PVM)首先了解计算机中的操作系统和处理器,然后将其转换为机器代码。此外,这些机器代码指令由处理器执行并显示结果。

Python程序的执行

但是,PVM 内部的解释器会逐行翻译程序,因此会耗费大量时间。为了克服这个问题,一种称为即时 (JIT) 的编译器被添加到 PVM。 JIT 编译器提高了Python程序的执行速度。此编译器并非用于所有Python环境,例如标准Python软件 CPython。

要执行 first.cpython-38.pyc 我们可以使用以下命令:

要查看文件的字节码 - first.py 我们可以键入以下命令:

dis命令被称为“反汇编程序”,它以可理解的格式显示字节码。该代码代表 5 列:

  1. 电话号码
  2. 字节码的偏移位置
  3. 字节码指令名称
  4. 指令的论点
  5. 常量或名称(括号内)