Python程序运行原理

Python 是一种解释型语言(先编译后解释语言),不需要编译成可执行文件,而是在运行时逐行解释执行,故运行效率相比C/C++较低。Python 的运行原理可以简单地概括为以下几个步骤:

  1. 词法分析和语法分析:Python 解释器会将源代码进行词法分析,将代码转换为一系列的 Token(即词法单元)。然后,Python 解释器会对 Token 进行语法分析,将代码转换为语法树。
  2. 字节码编译: Python 解释器会将语法树编译成字节码。字节码是一种类似于机器码的中间代码,它比源代码更加容易解释执行。
  3. 解释执行:最后,Python 解释器会逐行解释字节码为机器码,由CPU执行机器码。

 

Python解释器是一个可执行文件(加动态库),可以由Python源码编译得到(使用make install),但是编译和安装 Python 解释器需要一些编译工具和库的支持,例如 gcc 编译器、make 工具、zlib 库、OpenSSL 库、Tkinter 库等。

字节码是一种中间形式,Python 程序不需要在每次执行时都重新编译,pyc的目的是重用,Python解释器认为只有import进来的模块,才是需要被重用的模块。pyc文件每次被载入时,都会检查它的最后修改日期(由PyCodeObject写入到pyc时会写入一个long型的日期),与py文件一致则直接使用,否则重新生成一份pyc文件。

 

  • 编译型语言:任何一个小改动都需要整体重新编译,可以脱离编译环境运行,运行速度快;
  • 解释型语言:改动不需要整体重新编译,不可脱离解释器环境运行,运行速度慢;

 

posted @ 2023-04-21 14:35  Truman001  阅读(1182)  评论(0)    收藏  举报