Объекты кадров
-
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 (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