Python Glossary English

все Python 3tracebackфункция

traceback.format_stack()

трассировка в строку

Текущий стек вызовов строками, как в трассировке, но без исключения — чтобы записать в лог, откуда вызвана функция.

Синтаксис

lines = traceback.format_stack(f=None, limit=None)

Возвращает список строк; последняя — сама строка с вызовом format_stack. Полезна при отладке «кто вызывает меня с неверными аргументами»: в лог пишут ''.join(traceback.format_stack(limit=5)). В logging есть готовый аналог без ручной склейки — logger.warning('…', stack_info=True).

Примеры

import traceback
def deep():
    return traceback.format_stack()
lines = deep()
print(len(lines))  # → 2
print(lines[-1].splitlines()[0].endswith('in deep'))  # → True

См. также

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