Объекты кадров
-
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 (dict).Возвращает сильную ссылку.
Добавлено в версии 3.11.
-
int PyFrame_GetLineNumber(PyFrameObject *frame) -
Часть стабильного ABI начиная с версии 3.10.
Возвращает номер строки, выполняемой в данный момент в frame.
Внутренние кадры
Если вы не используете 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–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/c-api/frame.html