Python中的pyc文件

我们在编写Python程序的时候会发现在我们的目录中可能会出现与源代码同名的pyc文件生成,比如有一个源码文件是hello.py那么可能会生成一个hello.pyc文件出来.这个pyc文件是Python的字节码文件,就类似于Java中的hello.class一样.

Python虽然是解释性语言,但还是可以有一个编译的过程,只不过是编译成字节码文件罢了.如果我们的源码带有包含关系,比如源码a.py里面import了源码文件b.py,那么在执行python a.py的时候就会将b.py编译成b.pyc

下次再运行python a.py的时候解释器会检查b.pyb.pyc的修改时间,如果一致就代表源码没有修改过,那么就可以直接调用b.pyc来更快的执行程序,如果时间不同那就证明b.py被修改过,则会重新编译b.py

其中pyc文件的主要作用是用来加快程序执行速度的,虽然编译出来的pyc是二进制文件,不能看到内部的内容,但是还是不要把这种方式作为保护源码的方法.因为这种pyc文件是可以轻易被反编译的,有很多开源库可以轻松的反编译pyc文件,甚至都有web程序来反编译pyc文件,比如这个tool.lu就可以通过上传文件pyc文件的方式反编译.