Python 是一种解释型语言(先编译后解释语言),不需要编译成可执行文件,而是在运行时逐行解释执行,故运行效率相比C/C++较低。Python 的运行原理可以简单地概括为以下几个步骤:
- 词法分析和语法分析:Python 解释器会将源代码进行词法分析,将代码转换为一系列的 Token(即词法单元)。然后,Python 解释器会对 Token 进行语法分析,将代码转换为语法树。
- 字节码编译: Python 解释器会将语法树编译成字节码。字节码是一种类似于机器码的中间代码,它比源代码更加容易解释执行。
- 解释执行:最后,Python 解释器会逐行解释字节码为机器码,由CPU执行机器码。
Python解释器是一个可执行文件(加动态库),可以由Python源码编译得到(使用make install),但是编译和安装 Python 解释器需要一些编译工具和库的支持,例如 gcc 编译器、make 工具、zlib 库、OpenSSL 库、Tkinter 库等。
字节码是一种中间形式,Python 程序不需要在每次执行时都重新编译,pyc的目的是重用,Python解释器认为只有import进来的模块,才是需要被重用的模块。pyc文件每次被载入时,都会检查它的最后修改日期(由PyCodeObject写入到pyc时会写入一个long型的日期),与py文件一致则直接使用,否则重新生成一份pyc文件。
- 编译型语言:任何一个小改动都需要整体重新编译,可以脱离编译环境运行,运行速度快;
- 解释型语言:改动不需要整体重新编译,不可脱离解释器环境运行,运行速度慢;
标签:解释,解释器,字节,程序运行,Python,编译,原理,pyc From: https://www.cnblogs.com/LuckCoder/p/17340285.html