Python有自己的解释器和执行指令的Python虚拟机(PVM),这也使得Python也具有像Java那样良好的跨平台特性
相比于更加注重商业逻辑的Java,Python更多的是专注于某一项特殊实现,快捷开发的功能,譬如数据分析,算法模型的构建,数据爬虫。
相比于Java,Python拥有更多开源的库,并且这些开源库中很多是用C/C+编写,封装出Python接口。
Python的代码文件test.py在通过编译之后,并不是像Java那样直接生成class文件,而是先生成pyCodeObject对象,保存的是Python的字节码数据(对于Python来说,一个文件编译后生成的字节码也是一个对象),放在内存中,执行过后才会生成pyc文件并写入硬盘。
pyc包含三部分:Python版本信息(用于区分哪种Python生成的文件),pyc的生成时间,以及字节码数据pyCodeObject,Python代码在执行时会先检测硬盘中是否有编译好的pyc文件,如果有,直接拿来交给Python虚拟机执行,没有的话就进行编译,而pyc的时间信息用于保证代码修改过后能进行重新编译。