opname的填充方式/位置?

时间:2018-07-19 01:44:15

标签: python python-3.x

我正在查看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”,没有找到任何内容。

1 个答案:

答案 0 :(得分:3)

它来自较早的行from opcode import *opname列表填充在opcode.py中,其内容非常简单。