Python Glossary English

Python 3.5+tracebackфункция

traceback.walk_stack()

кадры и стек

Генератор пар (кадр, номер строки) от кадра f наружу по цепочке f_back — сырой материал для StackSummary.extract().

Синтаксис

for frame, lineno in traceback.walk_stack(f): ...

Отдаёт живые объекты frame с f_locals и f_globals, а не снимки: можно прочитать переменные вызывающих функций, но кадры держат их в памяти, пока вы держите кадры. Порядок обратный трассировке: сначала текущий кадр, последним — модуль. До Python 3.14 walk_stack(None) находил стартовый кадр лишь при первой итерации, и, например, list(walk_stack(None)) внутри функции падал с AttributeError; передавайте кадр явно — sys._getframe().

Примеры

import sys, traceback
def inner():
    return [f.f_code.co_name for f, line in traceback.walk_stack(sys._getframe())]
def outer():
    return inner()
print(outer())  # → ['inner', 'outer', '<module>']

См. также

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