python dis输出中的>>是什么?

时间:2019-07-19 22:54:25

标签: python disassembly

我有以下代码

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_ITERPOP_BLOCKLOAD_CONST打印。

1 个答案:

答案 0 :(得分:2)

如果寻找字节偏移量,您会发现每条标记行都是跳转或其他分支操作的对象。它可以帮助您更轻松地识别循环范围等。