Python Glossary English

все 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Сообщить о неточности