假设我在Python中有以下代码:
a = "WelcomeToTheMachine"
if a == "DarkSideOfTheMoon":
awersdfvsdvdcvd
print "done!"
Run Code Online (Sandbox Code Playgroud)
为什么不出错?它甚至如何编译?在Java或C#中,这将在编译期间被发现.
Python不是一种编译语言,这就是为什么你的代码不会抛出编译错误的原因.
Python是一种字节码解释语言.从技术上讲,源代码被"编译"为字节代码,但是如果使用PyPy或Pyston,字节代码就是及时编译(JIT),否则它是逐行解释的.
工作流程如下:
您的Python代码 - > 编译器 - > .pyc文件 - > 解释器 - > 您的输出
使用标准的python运行时这是什么意思?基本上所有繁重的工作都在运行时发生,与C或C++不同,其中完整的源代码在编译时被分析并转换为二进制.