все Python 3inspectфункция
inspect.getframeinfo()
стек и кадры
Сводка о кадре или объекте трассировки: файл, номер строки, имя функции и строки исходника вокруг. Возвращает inspect.Traceback.
Синтаксис
inspect.getframeinfo(frame, context=1)
Для пойманного исключения e.__traceback__ указывает на кадр, где исключение поймали, а не где возникло: чтобы попасть в место ошибки, идут по tb_next до конца. code_context читается из файла и равен None, если исходника нет (exec, REPL); context=0 не читает файл вовсе и быстрее. Путь в filename зависит от машины.
Примеры
import inspect
def f():
return 1 / 0
try:
f()
except ZeroDivisionError as e:
tb = e.__traceback__
print(inspect.getframeinfo(tb).function) # → <module>
while tb.tb_next:
tb = tb.tb_next
info = inspect.getframeinfo(tb)
print(info.function, info.lineno, info.code_context)
# → f 3 [' return 1 / 0\n']
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности