Python——反编译(Disassemble)与字节码(Bytecode)

为了知道Python代码底层都做了哪些操作,我们常常需要反编译Python代码以获得Python的字节码
我们可以获得: classes, methods, functions, or code 的字节码


获取字节码的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 比较`[]`和`list()`两者的不同
from dis import dis

# test case 1
dis("[]")
# Output:
1 0 BUILD_LIST 0
2 RETURN_VALUE

# test case 2
dis("list()")
# Output:
1 0 LOAD_NAME 0 (list)
2 CALL_FUNCTION 0
4 RETURN_VALUE

**由上述输出可知,`list()` 比 `[]` 会多执行一行字节码`LODA_NAME`**