Содержание страницы
Объекты фреймов¶Frame Objects
-
type PyFrameObject¶
- Часть Limited API (как непрозрачная структура).
C-структура объектов, используемая для описания объектов фреймов.
В этой структуре нет открытых членов.
Изменено в версии 3.11: Члены этой структуры были удалены из публичного C API. Подробнее см. в статью «Что нового» .
Функции PyEval_GetFrame() и PyThreadState_GetFrame()
можно использовать для получения объекта фрейма.
См. также Отражение.
-
PyTypeObject PyFrame_Type¶
Тип объектов фреймов. Это тот же объект, что и
types.FrameTypeна уровне Python.Изменено в версии 3.11: Ранее этот тип был доступен только после включения
<frameobject.h>.
-
int PyFrame_Check(PyObject *obj)¶
Возвращает ненулевое значение, если obj является объектом фрейма.
Изменено в версии 3.11: Ранее эта функция была доступна только после включения
<frameobject.h>.
-
PyFrameObject *PyFrame_GetBack(PyFrameObject *frame)¶
Получает следующий внешний фрейм frame.
Возвращает сильную ссылку или
NULL, если frame не имеет внешнего фрейма.Добавлено в версии 3.9.
-
PyObject *PyFrame_GetBuiltins(PyFrameObject *frame)¶
Получить атрибут
f_builtinsфрейма.Возвращает сильную ссылку. Результат не может быть
NULL.Добавлено в версии 3.12.
-
PyCodeObject *PyFrame_GetCode(PyFrameObject *frame)¶
- Часть Stable ABI начиная с версии 3.10.
Получает код frame.
Возвращает сильную ссылку.
Результат (код фрейма) не может быть
NULL.Добавлено в версии 3.9.
-
PyObject *PyFrame_GetGenerator(PyFrameObject *frame)¶
Получает генератор, корутину или асинхронный генератор, которому принадлежит этот фрейм, или
NULL, если фрейм не принадлежит генератору. Не вызывает исключения, даже если возвращаемое значение равноNULL.Возвращает сильную ссылку или
NULL.Добавлено в версии 3.12.
-
PyObject *PyFrame_GetGlobals(PyFrameObject *frame)¶
Получить атрибут
f_globalsфрейма.Возвращает сильную ссылку. Результат не может быть
NULL.Добавлено в версии 3.12.
-
int PyFrame_GetLasti(PyFrameObject *frame)¶
Получить атрибут
f_lastiфрейма.Возвращает -1, если
frame.f_lastiравноNone.Добавлено в версии 3.12.
-
PyObject *PyFrame_GetVar(PyFrameObject *frame, PyObject *name)¶
Получить имя переменной из фрейма.
В случае успеха возвращает сильную ссылку на значение переменной.
Возбуждает
NameErrorи возвращаетNULL, если переменная не существует.При ошибке возбуждает исключение и возвращает
NULL.
Тип имени должен быть
str.Добавлено в версии 3.12.
-
PyObject *PyFrame_GetVarString(PyFrameObject *frame, const char *name)¶
Аналогично
PyFrame_GetVar(), но имя переменной – это C-строка в кодировке UTF-8.Добавлено в версии 3.12.
-
PyObject *PyFrame_GetLocals(PyFrameObject *frame)¶
Получает атрибут
f_localsфрейма (dict).Возвращает сильную ссылку.
Добавлено в версии 3.12.
-
int PyFrame_GetLineNumber(PyFrameObject *frame)¶
- Часть Stable ABI начиная с версии 3.10.
Возвращает номер строки, которую фрейм в данный момент выполняет.
Внутренние фреймы¶Internal Frames
Если не используется PEP 523, это не понадобится.
-
struct _PyInterpreterFrame¶
Внутреннее представление фрейма интерпретатора.
Добавлено в версии 3.12.
-
PyObject *PyUnstable_InterpreterFrame_GetCode(struct _PyInterpreterFrame *frame);¶
- Это нестабильное API. Оно может меняться без предупреждения в минорных версиях.
Возвращает сильную ссылку на объект кода для фрейма.
Добавлено в версии 3.12.
-
int PyUnstable_InterpreterFrame_GetLasti(struct _PyInterpreterFrame *frame);¶
- Это нестабильное API. Оно может меняться без предупреждения в минорных версиях.
Возвращает смещение в байтах последней выполненной инструкции.
Добавлено в версии 3.12.
-
int PyUnstable_InterpreterFrame_GetLine(struct _PyInterpreterFrame *frame);¶
- Это нестабильное API. Оно может меняться без предупреждения в минорных версиях.
Возвращает номер текущей выполняемой строки или -1, если номер строки отсутствует.
Добавлено в версии 3.12.