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