Spec-Zone.ru › Python 3.13

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

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

Spec-Zone.ru

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