zg手册 之 python2.7.7源码分析(4)-- pyc字节码文件
什么是字节码 python解释器在执行python脚本文件时,对文件中的python源代码进行编译,编译的结果就是byte code(字节码) python虚拟机执行编译好的字节码,完成程序的运行 python会为导入的模块创建字节码文件 字节码文件的创建过程 当a.py依赖b.py时,如在a.py中import b python先检查是否有b.pyc文件(字节码文件),如果有,并且修改时间比b.py晚,就直接调用b.pyc 否则编译b.py生成b.pyc,然后加载新生成的字节码文件 字节码对象 每个py文件会包含许多代码块(Code Block) 每个代码块(Code Block)会编译创建一个字节码对象(PyCodeObject) PyCodeObject 对象本身是嵌套的,根据代码块的结构嵌套 子 PyCodeObject 对象保存在父对象的 co_consts 变量中 代码块 Code Block # 整个文件是一个代码块 1 # 代码块 2 class TestA(object): pass # 代码块 3 class TestB(object): pass # 代码块 4 def show(): print 'show ...' a = TestA()show() 字节码对象的结构 /* 字节码对象 */ typedef struct { PyObject_HEAD