python运行过程
2018-08-26 22:08
330 查看
程序执行过程
- PyCodeObject:PyCodeObject则是Python编译器真正编译成的结果。
- 当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
- 当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
- 每次加载模块时,如果同时存在.py和.pyc,Python会尝试使用.pyc,如果.pyc的编译时间早于.py的修改时间,则重新编译.py并更新.pyc。
- 所以说pyc文件其实是PyCodeObject的一种持久化保存方式。
- PyCodeObject对象的创建时机是模块加载的时候,即import。
- Python解释器只把我们可能重用到的模块持久化成pyc文件,见如下的示例。
示例 :
- 代示片段如下:
- 如下,代码执行后并没有看到pyc文件,仍然是test.py孤零零地呆在那!
- 换一种写法,我们把print_str方法换到另外的一个python模块中:
- 再次执行,在__pycache__生成pyc文件,如下图:
- Python解释器只把我们可能重用到的模块持久化成pyc文件
参考资料
相关文章推荐
- python运行以及过程中遇到的问题
- Python:Python的运行过程
- Python虚拟机运行过程
- crontab中运行python程序出错,提示ImportError: No module named解决全过程
- crontab中运行python程序出错,提示ImportError: No module named解决全过程
- 利用arcpy解决python代码运行过程中产生的中间数据
- R-FCN实验笔记——Python版(包括运行过程,遇到的问题及解决)
- windows下python-nmap运行过程中出现的问题及解决办法
- crontab中运行python程序出错,提示ImportError: No module named解决全过程
- windows下python-nmap运行过程中出现的问题及解决办法
- 一个诡异的BUG: Python导入的模块运行过程中变成了None
- Python 程序 运行过程
- Python 程序 运行过程
- Python 程序 运行过程
- 一次曲折的安装运行python的过程
- Python 程序 运行过程
- Python 程序 运行过程
- CentOS7 下 Python3.5.1安装过程
- python 运行selenium的测试代码mark
- python学习笔记6.7-简化数据结构的初始化过程