【发布时间】:2016-09-13 18:32:14
【问题描述】:
我写了一个小程序'test1.py'
print abc
print 'the above is invalid'
现在我写了一个不同的python程序'test2.py'
import test1
print 'this line will not get executed'
Q1:令我惊讶的是,我可以看到 test1.pyc 文件已成功生成。为什么? 由于 test1.py 在第一行包含无效语句,为什么会生成 test1.pyc 文件?编译器到底检查了什么(是语法还是其他什么?)。我很困惑。请澄清。
Q2:我还看到编译后的python文件会被进一步解释,是真的吗?
Q3:编译器将程序整体转换为机器码。这不需要通过解释器进一步解释吗?这是真的吗?如果是这样,那问题2呢?
Q4:我还读到编译后的代码更接近机器。当我们使用解释器时,它将代码转换为中间代码,需要进一步转换为机器代码。对吗?那么,编译代码比解释代码更接近机器?
【问题讨论】:
标签: python python-2.7 compilation