> **Источник:** https://python-all.ru/3.11/c-api/frame.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# Объекты фреймов

#### `type PyFrameObject`

*Часть [Limited API](https://python-all.ru/3.11/c-api/stable.html#stable) (как непрозрачная структура).*

C-структура объектов, используемая для описания объектов фреймов.

В этой структуре нет открытых членов.

Изменено в версии 3.11: Члены этой структуры были удалены из публичного C API. Подробнее см. в [статью «Что нового»](https://python-all.ru/3.11/whatsnew/3.11.html#pyframeobject-3-11-hiding) .

Функции [`PyEval_GetFrame()`](https://python-all.ru/3.11/c-api/reflection.html#c.PyEval_GetFrame) и [`PyThreadState_GetFrame()`](https://python-all.ru/3.11/c-api/init.html#c.PyThreadState_GetFrame) можно использовать для получения объекта фрейма.

См. также [Отражение](https://python-all.ru/3.11/c-api/reflection.html#reflection).

#### `PyTypeObject PyFrame_Type`

Тип объектов фреймов. Это тот же объект, что и [`types.FrameType`](https://python-all.ru/3.11/library/types.html#types.FrameType) на уровне Python.

Изменено в версии 3.11: Ранее этот тип был доступен только после включения `<frameobject.h>`.

#### `int PyFrame_Check(PyObject *obj)`

Возвращает ненулевое значение, если *obj* является объектом фрейма.

Изменено в версии 3.11: Ранее эта функция была доступна только после включения `<frameobject.h>`.

#### `PyFrameObject *PyFrame_GetBack(PyFrameObject *frame)`

Получает следующий внешний фрейм *frame*.

Возвращает [сильную ссылку](https://python-all.ru/3.11/glossary.html#term-strong-reference) или `NULL`, если *frame* не имеет внешнего фрейма.

Новое в версии 3.9.

#### `PyObject *PyFrame_GetBuiltins(PyFrameObject *frame)`

Получить атрибут [`f_builtins`](https://python-all.ru/3.11/reference/datamodel.html#frame.f_builtins) *фрейма*.

Возвращает [сильную ссылку](https://python-all.ru/3.11/glossary.html#term-strong-reference). Результат не может быть `NULL`.

Новое в версии 3.11.

#### `PyCodeObject *PyFrame_GetCode(PyFrameObject *frame)`

*Часть [Stable ABI](https://python-all.ru/3.11/c-api/stable.html#stable) начиная с версии 3.10.*

Получает код *frame*.

Возвращает [сильную ссылку](https://python-all.ru/3.11/glossary.html#term-strong-reference).

Результат (код фрейма) не может быть `NULL`.

Новое в версии 3.9.

#### `PyObject *PyFrame_GetGenerator(PyFrameObject *frame)`

Получает генератор, корутину или асинхронный генератор, которому принадлежит этот фрейм, или `NULL`, если фрейм не принадлежит генератору. Не вызывает исключения, даже если возвращаемое значение равно `NULL`.

Возвращает [сильную ссылку](https://python-all.ru/3.11/glossary.html#term-strong-reference) или `NULL`.

Новое в версии 3.11.

#### `PyObject *PyFrame_GetGlobals(PyFrameObject *frame)`

Получить атрибут [`f_globals`](https://python-all.ru/3.11/reference/datamodel.html#frame.f_globals) *фрейма*.

Возвращает [сильную ссылку](https://python-all.ru/3.11/glossary.html#term-strong-reference). Результат не может быть `NULL`.

Новое в версии 3.11.

#### `int PyFrame_GetLasti(PyFrameObject *frame)`

Получить атрибут [`f_lasti`](https://python-all.ru/3.11/reference/datamodel.html#frame.f_lasti) *фрейма*.

Возвращает -1, если `frame.f_lasti` равно `None`.

Новое в версии 3.11.

#### `PyObject *PyFrame_GetLocals(PyFrameObject *frame)`

Получает атрибут [`f_locals`](https://python-all.ru/3.11/reference/datamodel.html#frame.f_locals) *фрейма* ([`dict`](https://python-all.ru/3.11/library/stdtypes.html#dict)).

Возвращает [сильную ссылку](https://python-all.ru/3.11/glossary.html#term-strong-reference).

Новое в версии 3.11.

#### `int PyFrame_GetLineNumber(PyFrameObject *frame)`

*Часть [Stable ABI](https://python-all.ru/3.11/c-api/stable.html#stable) начиная с версии 3.10.*

Возвращает номер строки, которую *фрейм* в данный момент выполняет.
