Каркасные объекты¶
-
type PyFrameObject¶
- Часть Ограниченный API (в виде непрозрачной структуры).
C-структура объектов, используемая для описания объектов фрейма.
В этой структуре нет открытых членов.
Изменено в версии 3.11: Члены этой структуры были удалены из общедоступного C API. Подробности см. в What’s New entry.
Функции PyEval_GetFrame()
и PyThreadState_GetFrame()
могут быть использованы для получения объекта кадра.
См. также Reflection.
-
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)¶
- Возвращаемое значение: Новая ссылка.
Получите кадр следующего внешнего кадра.
Возвращает значение strong reference или
NULL
, если у кадра нет внешнего кадра.Added in version 3.9.
-
PyObject *PyFrame_GetBuiltins(PyFrameObject *frame)¶
- Возвращаемое значение: Новая ссылка.
Получите атрибут
f_builtins
кадра.Возвращает значение strong reference. Результат не может быть
NULL
.Added in version 3.11.
-
PyCodeObject *PyFrame_GetCode(PyFrameObject *frame)¶
- Возвращаемое значение: Новая ссылка. Часть Стабильный ABI с версии 3.10.
Получите код кадра.
Возвращает strong reference.
Результат (код кадра) не может быть
NULL
.Added in version 3.9.
-
PyObject *PyFrame_GetGenerator(PyFrameObject *frame)¶
- Возвращаемое значение: Новая ссылка.
Получает генератор, coroutine или async-генератор, которому принадлежит этот фрейм, или
NULL
, если этот фрейм не принадлежит генератору. Не вызывает исключения, даже если возвращаемое значениеNULL
.Возвращает значение strong reference или
NULL
.Added in version 3.11.
-
PyObject *PyFrame_GetGlobals(PyFrameObject *frame)¶
- Возвращаемое значение: Новая ссылка.
Получите атрибут
f_globals
кадра.Возвращает значение strong reference. Результат не может быть
NULL
.Added in version 3.11.
-
int PyFrame_GetLasti(PyFrameObject *frame)¶
Получите атрибут
f_lasti
кадра.Возвращает -1, если
frame.f_lasti
равноNone
.Added in version 3.11.
-
PyObject *PyFrame_GetVar(PyFrameObject *frame, PyObject *name)¶
- Возвращаемое значение: Новая ссылка.
Получить переменную имя из кадра.
В случае успеха верните значение переменной strong reference.
Вызывает
NameError
и возвращаетNULL
, если переменная не существует.Вызывает исключение и возвращает
NULL
при ошибке.
Тип name должен быть
str
.Added in version 3.12.
-
PyObject *PyFrame_GetVarString(PyFrameObject *frame, const char *name)¶
- Возвращаемое значение: Новая ссылка.
Аналогично
PyFrame_GetVar()
, но имя переменной представляет собой строку C, закодированную в UTF-8.Added in version 3.12.
-
PyObject *PyFrame_GetLocals(PyFrameObject *frame)¶
- Возвращаемое значение: Новая ссылка.
Получает атрибут
f_locals
кадра. Если фрейм ссылается на optimized scope, возвращается прокси-объект с возможностью записи, который позволяет изменять локали. Во всех остальных случаях (классы, модули,exec()
,eval()
) возвращается отображение, представляющее локали фрейма напрямую (как описано дляlocals()
).Возвращает strong reference.
Added in version 3.11.
Изменено в версии 3.13: Как часть PEP 667, возвращает прокси-объект для оптимизированных диапазонов.
-
int PyFrame_GetLineNumber(PyFrameObject *frame)¶
- Часть Стабильный ABI с версии 3.10.
Возвращает номер строки, на которой в данный момент выполняется кадр.
Внутренние кадры¶
Если вы не используете PEP 523, он вам не понадобится.
-
struct _PyInterpreterFrame¶
Внутреннее представление фрейма интерпретатора.
Added in version 3.11.
-
PyObject *PyUnstable_InterpreterFrame_GetCode(struct _PyInterpreterFrame *frame);¶
- Это Нестабильный API. Она может меняться без предупреждения в небольших выпусках.
Возвращает strong reference в объект кода для кадра.
Added in version 3.12.
-
int PyUnstable_InterpreterFrame_GetLasti(struct _PyInterpreterFrame *frame);¶
- Это Нестабильный API. Она может меняться без предупреждения в небольших выпусках.
Возвращает смещение байта в последней выполненной инструкции.
Added in version 3.12.
-
int PyUnstable_InterpreterFrame_GetLine(struct _PyInterpreterFrame *frame);¶
- Это Нестабильный API. Она может меняться без предупреждения в небольших выпусках.
Возвращает номер текущей выполняемой строки или -1, если номер строки отсутствует.
Added in version 3.12.