Spec-Zone.ru › Python 3.12

Объекты кадров

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API