Python Glossary English

Python 3.4+disфункция

dis.stack_effect()

сведения о коде

Возвращает, на сколько опкод изменит глубину стека вычислений интерпретатора: +1, -1 и т. п.

Синтаксис

dis.stack_effect(opcode, oparg=None, *, jump=None)

Номера опкодов разные в каждой версии, поэтому передавайте dis.opmap['ИМЯ'], а не число. До 3.13 опкод с аргументом без oparg давал ValueError, с 3.13 считается oparg=0 — пишите oparg явно, чтобы код работал везде. Для переходов jump=True и jump=False дают разные значения, без jump — наибольшее из двух.

Примеры

import dis
print(dis.stack_effect(dis.opmap['POP_TOP']))  # → -1
print(dis.stack_effect(dis.opmap['LOAD_CONST'], 0))  # → 1

См. также

Частые ошибки

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