查看字节码可以帮助我们更好的理解python的执行流程,本文记录 python 生成函数字节码的方法。
import dis,target
dis.dis(target)
import dis,target
dis.dis(target.funcA)
或
import dis,target
dis.dis(target.classA)
import dis
s=open('target.py').read()
co=compile(s,'target.py','exec')
dis.dis(co)
import dis
def hello(x, y):
t = x ** 2
s = y ** 0.5
r = t + s
return r
dis.dis(hello)
4 0 LOAD_FAST 0 (x)
2 LOAD_CONST 1 (2)
4 BINARY_POWER
6 STORE_FAST 2 (t)
5 8 LOAD_FAST 1 (y)
10 LOAD_CONST 2 (0.5)
12 BINARY_POWER
14 STORE_FAST 3 (s)
6 16 LOAD_FAST 2 (t)
18 LOAD_FAST 3 (s)
20 BINARY_ADD
22 STORE_FAST 4 (r)
7 24 LOAD_FAST 4 (r)
26 RETURN_VALUE