Python 3.4+disпонятие
dis.Bytecode
анализ байт-кода
Объект-обёртка над байт-кодом функции или объекта кода: многократно итерируется по Instruction, отдаёт листинг и сведения строкой.
Синтаксис
bc = dis.Bytecode(x, *, first_line=None, current_offset=None)
В отличие от get_instructions() итерировать его можно сколько угодно раз, а метод .dis() возвращает листинг строкой, а не печатает, как dis.dis(). .info() — то же, что dis.code_info(). Bytecode.from_traceback(tb) строит объект с отметкой упавшей инструкции — удобная замена distb(), когда текст нужен в логе.
Примеры
import dis
def f(x):
return x + 1
bc = dis.Bytecode(f)
print(type(bc.dis()).__name__) # → str
print(len(list(bc)) == len(list(bc))) # → True
print(bc.info() == dis.code_info(f)) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности