Объекты кадров
-
type PyFrameObject -
Часть Ограниченного 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объекта 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, возвращает прокси-объект для оптимизированных областей.
-
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.13/c-api/frame.html