• python pyc文件


    一、案例演示

    工程目录如下:
    在这里插入图片描述

    ## main.oy
    import mytools
    
    def print_hi(name):
        mytools.print_hello()
        mytools.print_python()
    
    
    if __name__ == '__main__':
        print_hi('PyCharm')
    
    --------------------------------------------------
    
    # mytools.py
    def print_hello():
        print("hello")
    
    
    def print_python():
        print("python")
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    mytools.py 提供函数工具,给 main.py 使用。

    在这里插入图片描述


    二、工程目录

    在运行了 main.py之后,打开我们的工程目录,可以看到工程里多了一个目录:pycache

    在这里插入图片描述
    进入后,可以看到有个文件:mytools.cpython-39.pyc,跟我们提供的工具文件 mytools.py 有相同的文件名前缀。


    三. mytools.cpython-39.pyc 解释

    1. pyc文件

    pyc文件的 c,是 comiled (编译过)的意思。

    cpython-39 表示 python 解释器的版本。这个 pyc 文件是由 python 解释器将模块的源码转换为字节码,python 这样保存字节码,是作为一种启动速度的优化。

    2. 字节码

    • Python在解释源程序时是分成两个步骤的
    1. 首先处理源代码,编译生成一个二进制字节码
    2. 再对字节码进行处理,才会生成CPU能够识别的机器码
    • 有了模块的字节码文件之后,下一次运行程序时,如果在上次保存字节码之后没有修改过源代码,Python将会加载.pyc文件并跳过编译这个步骤
    • 当Python重编译时,它会自动检查源文件和字节码文件的时间戳
    • 如果你又修改了源代码,下次程序运行时,字节码将自动重新创建

  • 相关阅读:
    嵌入式linux系统中设备树基础知识
    nn.AdaptiveAvgPool2d(output_size)详解
    SpringBoot使用Swagger2创建API文档
    RT-Thread任务间同步及通信
    【单片机基础】89C52单片机串口通信
    Hive参数与性能调优-V2.0
    【ELK日志收集系统】
    Java 多线程:锁
    Monitoring Database Activity监控数据库活动
    Scala 第二篇 算子篇
  • 原文地址:https://blog.csdn.net/weixin_42109053/article/details/126324644