Spec-Zone.ru › Python 3.12

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

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

Spec-Zone.ru

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