python是解释型语言,需要解释器对程序逐行做出解释,然后直接运行。
C语言是编译型语言,PC不需要翻译,直接执行就可以了。
java也是解释型语言,不过速度可以跟编译型媲美。
用java举例,java首先是通过编译器编译成字节码文件,就是一种中间编码,
然后运行时,通过解释器给解释成机器文件,所以java是一种先编译后解释的语言。
python也是一种先编译后解释的语言
如果用户又更改了源代码,那么编译器会比较源代码和pyc的修改时间,如果源代码的时间更新那么就不会直接加载pyc文件了,而会重新编译一次源代码。
pyc就是预编译以后的字节码文件,跟java类似,是一种中间编码,并不是最终的机器码。