Python Glossary English

Python 3.5+tracebackпонятие

traceback.FrameSummary

кадры и стек

Один кадр трассировки: файл, номер строки, имя функции и текст строки — снимок без ссылки на живой кадр и его переменные.

Синтаксис

traceback.FrameSummary(filename, lineno, name, *, lookup_line=True, locals=None, line=None)

Его элементы составляют StackSummary из extract_tb() и extract_stack(). В отличие от объекта frame он не держит локальные переменные, поэтому список FrameSummary можно хранить и передавать, не удерживая в памяти всё, что было в функциях. Объект распаковывается как кортеж из четырёх полей (filename, lineno, name, line) — так работает старый код, где extract_tb возвращал кортежи. Текст line читается из файла лениво, через linecache: если файл успели изменить, строка будет уже новой.

Примеры

import traceback
def boom():
    return 1 / 0
try:
    boom()
except ZeroDivisionError as e:
    fs = traceback.extract_tb(e.__traceback__)[-1]
print(fs.name, fs.lineno, fs.line)  # → boom 3 return 1 / 0
filename, lineno, name, line = fs
print(name == fs.name)  # → True

См. также

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