zoukankan      html  css  js  c++  java
  • python运行过程

    程序执行过程


    1. PyCodeObject:PyCodeObject则是Python编译器真正编译成的结果。
    2. 当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
    3. 当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
    4. 每次加载模块时,如果同时存在.py和.pyc,Python会尝试使用.pyc,如果.pyc的编译时间早于.py的修改时间,则重新编译.py并更新.pyc。
    5. 所以说pyc文件其实是PyCodeObject的一种持久化保存方式。
    6. PyCodeObject对象的创建时机是模块加载的时候,即import
    7. Python解释器只把我们可能重用到的模块持久化成pyc文件,见如下的示例。

    示例 :


    1. 代示片段如下:
    2. 如下,代码执行后并没有看到pyc文件,仍然是test.py孤零零地呆在那!
    3. 换一种写法,我们把print_str方法换到另外的一个python模块中:
    4. 再次执行,在__pycache__生成pyc文件,如下图:
    5. Python解释器只把我们可能重用到的模块持久化成pyc文件 

    参考资料


  • 相关阅读:
    中南大学ACM12月月赛第二场热身赛解题报告
    中南大学ACM12月月赛第二场热身赛在本周日(2011年11月20日)举行
    IPv4 and IPv6
    Java and IPV6
    IPv6 and Java
    poj3385
    poj3390
    poj3226
    poj3767
    poj3497
  • 原文地址:https://www.cnblogs.com/tgzhu/p/9294549.html
Copyright © 2011-2022 走看看