发布时间:2022-05-11 09:39:53 人气:177 作者:多测师
为什么 pyc 文件也称作字节码文件?因为这些文件存储的都是一些二进制的字节数据,而不是能让人直观查看的文本数据。
Python 标准库提供了用来生成代码对应字节码的工具 dis。dis 提供一个名为 dis 的方法,这个方法接收一个 code 对象,然后会输出 code 对象里的字节码指令信息。
s = open('demo.py').read()
co = compile(s, 'demo.py', 'exec')
import dis
dis.dis(co)
执行上面这段代码可以输出 demo.py 编译后的字节码指令
1 0 LOAD_CONST 0 (-1)
3 LOAD_CONST 1 (None)
6 IMPORT_NAME 0 (foo)
9 STORE_NAME 0 (foo)
3 12 LOAD_CONST 2 (1)
15 LOAD_CONST 3 (u'python')
18 BUILD_LIST 2
21 STORE_NAME 1 (a)
4 24 LOAD_CONST 4 (u'a string')
27 STORE_NAME 1 (a)
6 30 LOAD_CONST 5 ()
33 MAKE_FUNCTION 0
36 STORE_NAME 2 (func)
11 39 LOAD_NAME 1 (a)
42 PRINT_ITEM
43 PRINT_NEWLINE
13 44 LOAD_NAME 3 (__name__)
47 LOAD_CONST 6 (u'__main__')
50 COMPARE_OP 2 (==)
53 POP_JUMP_IF_FALSE 82
14 56 LOAD_NAME 2 (func)
59 CALL_FUNCTION 0
62 POP_TOP
15 63 LOAD_NAME 0 (foo)
66 LOAD_ATTR 4 (add)
69 LOAD_CONST 2 (1)
72 LOAD_CONST 7 (2)
75 CALL_FUNCTION 2
78 POP_TOP
79 JUMP_FORWARD 0 (to 82)
>> 82 LOAD_CONST 1 (None)
85 RETURN_VALUE
以上内容为大家介绍了python 字节码指令,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/