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

---

# Объекты-генераторы

Объекты-генераторы – это то, что Python использует для реализации итераторов-генераторов. Обычно они создаются при итерации по функции, которая возвращает значения с помощью оператора yield, а не при явном вызове [`PyGen_New()`](https://python-all.ru/2.6/c-api/gen.html#PyGen_New).

**`PyGenObject`**

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

**[PyTypeObject](https://python-all.ru/2.6/c-api/type.html#PyTypeObject) `PyGen_Type`**

Объект типа, соответствующий объектам-генераторам

**int `PyGen_Check`(ob)**

Возвращает истину, если

*ob*

является объектом-генератором;

*ob*

не должен быть

*NULL*

.

**int `PyGen_CheckExact`(ob)**

Возвращает true, если тип

*ob*

– это

*PyGen\_Type*

, то есть объект-генератор;

*ob*

не должен быть

*NULL*

.

**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyGen_New`(PyFrameObject *\*frame*)**

*Возвращаемое значение: новая ссылка.*

Создаёт и возвращает новый объект-генератор на основе объекта *frame*. Эта функция забирает ссылку на *frame*. Параметр не должен быть *NULL*.
