为什么Python在解释之前先编译源代码为字节码?
为什么Python在解释之前要先把源代码编译成字节码呢?
为什么不直接从源代码进行解释呢?
6 个回答
7
因为直接从字节码解释执行更快。这样做可以省去词法分析的步骤。
8
因为你可以把代码编译成一个 .pyc
文件,然后可以多次从这个文件中运行。
所以如果你要多次运行一个脚本,你只需要花一次时间来解析源代码,之后就可以直接使用编译好的文件了。
39
几乎没有解释器会真的逐行直接解释代码,因为这样效率太低了。几乎所有的解释器都会使用一种中间形式的代码,这种代码更容易执行。而且,在这个中间代码上还可以进行一些小的优化。
Python 还会把这些代码存储起来,这对下次执行这段代码有很大的好处:Python 不需要再解析代码了;解析是编译过程中最慢的部分。因此,使用字节码表示可以大大减少执行时的负担。