1.运行过程
python源程序运行时,不是直接交给机器去运行的,而是先交给python虚拟机(通过C语言实现的),然后由python虚拟机解释成机器可识别的指令去运行; ——所以python是一种解释型语言或动态语言
2..pyc文件的作用
.pyc文件是python源程序在同python虚拟机交互时产生的python虚拟机可识别的字节码文件,然后python虚拟机再将其解释成机器可识别的指令; ——.pyc文件是python源码转为的python虚拟机可识别的字节码文件
3.为什么直接运行python程序没有看到.pyc文件,而导入模块就能看到生成的.pyc文件呢?
这里涉及到一个缓存机制,直接运行python程序其实也会生成.pyc文件,只是没有保存,python虚拟机将直接运行的程序视为长期运行的程序,不需要频繁调用,而导入模块,则视为会频繁调用;所以导入模块时,会生成.pyc文件,如此下次再导入该模块时,会先查看是否有.pyc文件,如果有,则直接导入.pyc文件;如果没有,则将模块转码成字节码文件pyc,后再导入字节码文件。这里会涉及到模块修改的问题,如果模块有修改,虚拟机会自动检测模块程序的修改时间,如果与修改则重新生成字节码文件。
时间: 2024-09-28 08:28:43