Why python compile the source to bytecode before interpreting?(为什么python在解释之前将源代码编译为字节码?)
问题描述
为什么python在解释之前要把源码编译成字节码?
Why python compile the source to bytecode before interpreting?
为什么不直接从源头解释?
Why not interpret from the source directly?
推荐答案
几乎没有解释器真正直接逐行解释代码——这实在是太低效了.几乎所有解释器都使用一些可以轻松执行的中间表示.此外,还可以对此中间代码进行小幅优化.
Nearly no interpreter really interprets code directly, line by line – it's simply too inefficient. Almost all interpreters use some intermediate representation which can be executed easily. Also, small optimizations can be performed on this intermediate code.
Python 还存储了这段代码,这对下次执行这段代码有很大的好处:Python 不再需要解析代码;解析是编译过程中最慢的部分.因此,字节码表示可以大大减少执行开销.
Python furthermore stores this code which has a huge advantage for the next time this code gets executed: Python doesn't have to parse the code anymore; parsing is the slowest part in the compile process. Thus, a bytecode representation reduces execution overhead quite substantially.
这篇关于为什么python在解释之前将源代码编译为字节码?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:为什么python在解释之前将源代码编译为字节码?


- 如何使用PYSPARK从Spark获得批次行 2022-01-01
- 我如何透明地重定向一个Python导入? 2022-01-01
- 使用 Cython 将 Python 链接到共享库 2022-01-01
- 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
- ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
- 计算测试数量的Python单元测试 2022-01-01
- YouTube API v3 返回截断的观看记录 2022-01-01
- 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
- 我如何卸载 PyTorch? 2022-01-01
- CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01