我正在查看Python 3.7中的dis模块源代码,有一件事使我感到困惑,我看不到opname
被定义了却被直接使用了。例如。这是它的访问方式:
348 yield Instruction(opname[op], op,
349 arg, argval, argrepr,
350 offset, starts_line, is_jump_target)
但是opname填充在哪里?
以下是“ opname”的所有出现的列表:
Lib>grep -n "\<opname\>" dis.py
185: "opname opcode arg argval argrepr offset starts_line is_jump_target")
187:_Instruction.opname.__doc__ = "Human readable name for operation"
203: opname - human readable name for operation
241: fields.append(self.opname.ljust(_OPNAME_WIDTH))
348: yield Instruction(opname[op], op,
我也在C源代码中使用了“ opname”,没有找到任何内容。