python运行原理
2015-09-23 11:48
441 查看
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,后再导入字节码文件。这里会涉及到模块修改的问题,如果模块有修改,虚拟机会自动检测模块程序的修改时间,如果与修改则重新生成字节码文件。
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,后再导入字节码文件。这里会涉及到模块修改的问题,如果模块有修改,虚拟机会自动检测模块程序的修改时间,如果与修改则重新生成字节码文件。
相关文章推荐
- Python MySQLdb Mac安装遇到的问题
- Python MySQLdb Mac安装遇到的问题
- python使用xlwt读取文件写入Excel
- Python中国的学习方式处理问题
- python递归小应用
- python的一些规则
- 北邮网关登录python脚本
- 简单桶排序算法-python实现
- 希尔排序算法-python实现
- 用python写MapReduce函数——以WordCount为例
- 基数排序算法-python实现
- 归并排序算法-python实现
- 堆排序算法-python实现
- 插入排序算法-python实现
- 冒泡排序算法-Python实现
- 选择排序算法-python实现
- 快速排序算法-python实现
- python字典按照值排序
- python 时间模块小结
- Python科学计算发行版—Anaconda