Python opname是如何填充的/在哪里填充的?

Python opname是如何填充的/在哪里填充的?,python,python-3.x,Python,Python 3.x,我正在查看Python3.7中的dis模块源代码,有一件事让我感到困惑,我没有看到opname是定义的,但它是直接使用的。例如,以下是访问它的方式: 348 yield Instruction(opname[op], op, 349 arg, argval, argrepr, 350 offset, starts_line, is_jump_target) 但是opname在

我正在查看Python3.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“\”dis.py
185:“操作名操作码arg argval argrepr偏移量开始\u行为\u跳转\u目标”)
187:_指令.opname.u文档_=“操作的可读名称”
203:opname-操作的人类可读名称
241:fields.append(self.opname.ljust(_opname_WIDTH))
348:yield指令(opname[op],op,

我在C源代码中也搜索了“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,