все Python 3inspectпонятие
inspect.Traceback
стек и кадры
То, что возвращает getframeinfo(): filename, lineno, function, code_context, index и positions. С объектом трассировки исключения не путать.
Синтаксис
info = inspect.getframeinfo(frame); info.filename, info.lineno, info.function
Имя сбивает: это не types.TracebackType из e.__traceback__, а сводка о кадре (до 3.11 — именованный кортеж). Распаковка и индексы работают как у кортежа из пяти полей; positions (строки и столбцы инструкции, с 3.11) в кортеж не входит и доступно только как атрибут. Создавать такой объект руками не нужно.
Примеры
import inspect, types
info = inspect.getframeinfo(inspect.currentframe())
print(type(info).__name__, info.function, info.lineno) # → Traceback <module> 2
print(info.code_context) # → ['info = inspect.getframeinfo(inspect.currentframe())\n']
print(len(info), info[1] == info.lineno) # → 5 True
print(isinstance(info, types.TracebackType)) # → False
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности