все Python 3inspectфункция
inspect.isframe()
стек и кадры
Проверяет, что объект — кадр исполнения (types.FrameType): то, что возвращают currentframe() и sys._getframe().
Синтаксис
inspect.isframe(object) -> bool
Элемент списка stack() — не кадр, а FrameInfo: isframe(inspect.stack()[0]) даёт False, сам кадр лежит в поле .frame. Функция тоже не кадр: кадр создаётся на каждый вызов и живёт, пока функция исполняется (или пока на него есть ссылка). Отсюда же ошибка, когда в getouterframes() передают FrameInfo вместо кадра.
Примеры
import inspect
fi = inspect.stack(0)[0]
print(inspect.isframe(fi), inspect.isframe(fi.frame)) # → False True
print(inspect.isframe(inspect.currentframe())) # → True
del fi
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности