Python Glossary English

Python 3.4+disпонятие

dis.Instruction

анализ байт-кода

Именованный кортеж с описанием одной инструкции байт-кода: opname, opcode, arg, argval, argrepr, offset, positions и др.

Синтаксис

Instruction(opname, opcode, arg, argval, argrepr, offset, ...)

Самостоятельно его не создают — его выдают get_instructions() и Bytecode. arg — сырое число, argval — уже понятное значение (имя переменной, константа), argrepr — его строка для листинга. Поля менялись: positions с точными колонками появилось в 3.11, а в 3.13 starts_line из номера строки стал bool, номер переехал в line_number — код, читавший starts_line как число, тихо сломался.

Примеры

import dis
def f():
    return 'hello'
ins = [i for i in dis.get_instructions(f) if i.argval == 'hello'][0]
print(isinstance(ins, tuple))  # → True
print(ins._fields[:5])  # → ('opname', 'opcode', 'arg', 'argval', 'argrepr')
print(ins.argval, type(ins.arg).__name__)  # → hello int

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности