все Python 3disфункция
dis.dis()
дизассемблирование
Печатает дизассемблированный байт-код функции, класса, модуля, объекта кода или строки с исходным текстом.
Синтаксис
dis.dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False)
Печатает и возвращает None: print(dis.dis(f)) выведет листинг и следом лишнее None, а чтобы получить текст строкой, нужен file=io.StringIO() или Bytecode(f).dis(). Байт-код — деталь реализации CPython: опкоды меняются в каждом выпуске (в 3.14 LOAD_FAST часто становится LOAD_FAST_BORROW), так что сравнивать листинги между версиями или строить на них тесты нельзя. Без аргумента разбирает последнюю необработанную ошибку, как distb().
Примеры
import dis
def add(a, b):
return a + b
dis.dis(add) # → ? листинг байт-кода: опкоды меняются от версии к версии
import dis, io
buf = io.StringIO()
result = dis.dis('x = 1', file=buf)
print(result) # → None
print('STORE_NAME' in buf.getvalue()) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности