Объекты кадров
-
type PyFrameObject -
Часть ограниченного API (в виде непрозрачной структуры).
Структура C объектов, используемых для описания объектов кадров.
В этой структуре нет общедоступных членов.
Изменено в версии 3.11: Члены этой структуры были удалены из общедоступного API C. Подробности см. в разделе «Что нового».
Для получения объекта кадра можно использовать функции 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объекта frame.Возвращает сильную ссылку. Результат не может быть
NULL.Добавлено в версии 3.11.
-
PyCodeObject *PyFrame_GetCode(PyFrameObject *frame) -
Возвращаемое значение: новая ссылка. Часть стабильного ABI начиная с версии 3.10.
Получает код объекта frame.
Возвращает сильную ссылку.
Результат (код кадра) не может быть
NULL.Добавлено в версии 3.9.
-
PyObject *PyFrame_GetGenerator(PyFrameObject *frame) -
Возвращаемое значение: новая ссылка.
Получает генератор, сопрограмму или асинхронный генератор, которому принадлежит этот кадр, либо
NULL, если этот кадр не принадлежит генератору. Не вызывает исключение, даже если возвращаемое значение —NULL.Возвращает сильную ссылку либо
NULL.Добавлено в версии 3.11.
-
PyObject *PyFrame_GetGlobals(PyFrameObject *frame) -
Возвращаемое значение: новая ссылка.
Получает атрибут
f_globalsобъекта frame.Возвращает сильную ссылку. Результат не может быть
NULL.Добавлено в версии 3.11.
-
int PyFrame_GetLasti(PyFrameObject *frame) -
Получает атрибут
f_lastiобъекта frame.Возвращает -1, если
frame.f_lastiравенNone.Добавлено в версии 3.11.
-
PyObject *PyFrame_GetVar(PyFrameObject *frame, PyObject *name) -
Возвращаемое значение: новая ссылка.
Получает переменную с именем name из frame.
- В случае успеха возвращает сильную ссылку на значение переменной.
- Вызывает
NameErrorи возвращаетNULL, если переменная не существует. - В случае ошибки вызывает исключение и возвращает
NULL.
Тип name должен быть
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объекта frame. Если кадр относится к оптимизированной области видимости, возвращается прокси-объект, передающий изменения и позволяющий изменять локальные переменные. Во всех остальных случаях (классы, модули,exec(),eval()) напрямую возвращается отображение, представляющее локальные переменные кадра (как описано дляlocals()).Возвращает сильную ссылку.
Добавлено в версии 3.11.
Изменено в версии 3.13: В соответствии с PEP 667 возвращает экземпляр
PyFrameLocalsProxy_Type.
-
int PyFrame_GetLineNumber(PyFrameObject *frame) -
Часть стабильного ABI начиная с версии 3.10.
Возвращает номер строки, выполняемой в данный момент в frame.
Прокси локальных переменных кадра
Добавлено в версии 3.13.
Атрибут f_locals объекта кадра является экземпляром «прокси локальных переменных кадра». Прокси-объект предоставляет представление базового словаря локальных переменных кадра, передающее изменения. Это гарантирует, что переменные, предоставляемые f_locals, всегда соответствуют текущим локальным переменным самого кадра.
Дополнительные сведения см. в PEP 667.
-
PyTypeObject PyFrameLocalsProxy_Type -
Тип прокси-объектов
locals()кадра.
-
int PyFrameLocalsProxy_Check(PyObject *obj) -
Возвращает ненулевое значение, если obj является прокси-объектом
locals()кадра.
Внутренние кадры
Если вы не используете PEP 523, это вам не понадобится.
-
struct _PyInterpreterFrame -
Внутреннее представление кадра интерпретатора.
Добавлено в версии 3.11.
-
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.
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/c-api/frame.html