Pyc 文件(了解)
文章目录
- Pyc 文件(了解)
- 操作步骤
- 字节码
- 自己理解
操作步骤
- 浏览程序目录时会发现一个
__pycache__
的目录 - 目录下会有一个
xxx.cpython-35.pyc
文件,cpython-35
表示python
解释器的版本 - 这个
pyc
文件是由 Python 解释器将 模块的源码 转换为 字节码
-
Python
这样保存 字节码 是作为一种启动 速度的优化
字节码
Python
在解释源程序时时分成两个步骤的
- 首先处理源代码,编译 生成一个二进制 字节码
- 再对 字节码 进行处理,才会生成 CPU 能够识别的 机器码
- 有了模块的字节码文件之后,下一次运行程序时,如果在 上次保存字节码之后 没有修改过源代码,Python 将会加载 .pyc 文件并跳过编译这个步骤
- 当
Python
重编译时,他会自动检查源文件和字节码文件的时间戳
- 如果你又修改了源代码,下次程序运行时,字节码将自动重新创建
自己理解
.pyc 文件只是对 import 所导入模块的编译缓存
cache
表示缓存,里边放置的文件为 xxx.cpython-35.pyc
格式文件,cpython
是官方使用 C 语言开发的 python 解释器,35
表示解释器版本是 3.5 的版本,.pyc
说明该文件是使用官方开发的 解释器编译过的字节码文件。
python 是解释型语言,在程序执行时,从上向下,解释一行,执行一行。如果每次都要把程序中的每行代码依次解释,这样程序执行速度显然不够快。
如果我们在程序中使用 import 关键字导入一个模块(模块是一个提供工具的工具包),通常一个模块中的工具是已经开发测试完成可以直接使用的,而这个模块中的代码又会很少修改
,既然很少修改,当 python 的解释器发现程序中使用 import 关键字导入模块时,在执行程序的时候,就会先把这个模块编译成一个二进制文件,编译成二进制文件之后就不用解释一行执行一行了,使用这种方式就使得程序的执行速度
有了一个非常明显的改善,这就是 .pyc 文件的作用,同时如果我们在开发的时候,对模块文件进行了修改,如果再一次执行程序,依然会重新生成对 import 导入模块的编译缓存
。