以下验证在pyhton 2.7
如下文件:
编译生成字节码文件:
Snipaste_2020-06-14_01-47-10.png
-
03 f3 0d 0a
表示魔数 -
a9 fb e0 5e
表示文件创建时间。 -
63
字符c
,表示接下来是CodeObject结构 -
00 00 00 00
argcount
表示参数个数 -
00 00 00 00
nlocals
表示局部变量的个数 -
03 00 00 00
stacksize
表示执行这段code所使用的操作数栈的深度。 -
40 00 00 00
flags
-
73
s
-
0d 00 00 00
表示字节码的长度,这里长为13 -
64 00 00 64 04 00 17 47 48 64 03 00 53
字节码,每个字节码都有一个编号,叫做操作码,大小1个字节,python的字节码分为2种类型:- 一种是带参数:操作码 参数
最多也只能带一个参数,而每个参数占2个字节 - 一种是不带参数的:操作码
上面的字节码解析为:
-
64 00 00
LOAD_CONST 0 -
64 04 00
LOAD_CONST 4 -
17
BINARY_ADD -
47
PRINT_ITEM -
48
PRINT_NEWLINE -
64 03 00
LOAD_CONST 3 -
53
RETURN_VALUE
- 一种是带参数:操作码 参数
-
``
consts
常量表,保存着程序所使用的所有常量。
网友评论