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是什么意思

最佳答案

根据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 >

关于python - Dis模块中的LOAD_FAST,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47655315/

10-10 14:03