在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_FUNCTION
和RETURN_VALUE
LOAD_FAST
答案 0 :(得分:1)
LOAD_FAST(var_num)
将对本地co_varnames [var_num]的引用推送到堆栈。
因此,在您的情况下,LOAD_FAST指令加载alist
以便能够将其传递给全局len
函数:
return len (alist)
RETURN_VALUE LOAD_GLOBAL LOAD_FAST
< CALL_FUNCTION >