Python Glossary English

Python 3.5+inspectпонятие

inspect.FrameInfo

стек и кадры

Запись о кадре стека, которую возвращают inspect.stack(), trace(), getouterframes() и getinnerframes(): кадр, файл, строка, функция, контекст.

Синтаксис

for info in inspect.stack(): info.function, info.lineno, info.filename

Поле frame держит живой кадр со всеми его переменными: сохранённый список FrameInfo не даёт памяти освободиться, его удаляют после использования. Обращение по индексу (info[3]) работает ради совместимости со старым кортежем, но считается устаревшим — пишите info.function. Типичная задача — узнать вызывающего: inspect.stack()[1]; это дорого, потому что stack() читает исходник для каждого кадра.

Примеры

import inspect
def who_called_me():
    return inspect.stack()[1].function
def main():
    return who_called_me()
print(main())  # → main
import inspect
info = inspect.stack()[0]
print(type(info).__name__, info.function, info.lineno)  # → FrameInfo <module> 2
print(len(info), info[3] == info.function)  # → 6 True
del info

См. также

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