Python Glossary English

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