我有以下代码
code = '''
x = ['a','b','c']
for each in x:
print(each)
'''
我使用了dis
包的python的dis
函数,并获得了以下输出结果
dis.dis(code)
> 2 0 LOAD_CONST 0 ('a')
> 2 LOAD_CONST 1 ('b')
> 4 LOAD_CONST 2 ('c')
> 6 BUILD_LIST 3
> 8 STORE_NAME 0 (x)
>
> 3 10 SETUP_LOOP 20 (to 32)
> 12 LOAD_NAME 0 (x)
> 14 GET_ITER
> >> 16 FOR_ITER 12 (to 30)
> 18 STORE_NAME 1 (each)
>
> 4 20 LOAD_NAME 2 (print)
> 22 LOAD_NAME 1 (each)
> 24 CALL_FUNCTION 1
> 26 POP_TOP
> 28 JUMP_ABSOLUTE 16
> >> 30 POP_BLOCK
> >> 32 LOAD_CONST 3 (None)
> 34 RETURN_VALUE
我想知道>>
在此输出中的意义是什么。为FOR_ITER
,POP_BLOCK
,LOAD_CONST
打印。
答案 0 :(得分:2)
如果寻找字节偏移量,您会发现每条标记行都是跳转或其他分支操作的对象。它可以帮助您更轻松地识别循环范围等。