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

---

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

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

**`PyGenObject`**

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

**[PyTypeObject](https://python-all.ru/3.3/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* PyGen_New(PyFrameObject *frame)`

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

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