dis模块中的`LOAD_FAST`

时间:2017-12-05 13:54:00

标签: python

32.12. dis — Disassembler for Python bytecode — Python 3.6.3 documentation中,有一个例子说:

示例:给定函数myfunc():

def myfunc(alist):
    return len(alist)

以下命令可用于显示myfunc()的反汇编:

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE

我可以理解LOAD_GLOBAL CALL_FUNCTIONRETURN_VALUE

LOAD_FAST

的含义是什么

1 个答案:

答案 0 :(得分:1)

根据Python dis docs

  

LOAD_FAST(var_num)

     

将对本地co_varnames [var_num]的引用推送到堆栈。

因此,在您的情况下,LOAD_FAST指令加载alist以便能够将其传递给全局len函数:

return        len          (alist)

RETURN_VALUE  LOAD_GLOBAL  LOAD_FAST
                < CALL_FUNCTION >