gen.md
1> **Источник:** https://python-all.ru/3.10/c-api/gen.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты-генераторы89Объекты-генераторы – это то, что Python использует для реализации итераторов генераторов. Обычно они создаются путём итерации по функции, которая возвращает значения, а не явным вызовом [`PyGen_New()`](https://python-all.ru/3.10/c-api/gen.html#c.PyGen_New) или [`PyGen_NewWithQualName()`](https://python-all.ru/3.10/c-api/gen.html#c.PyGen_NewWithQualName).1011#### `type PyGenObject`1213C-структура, используемая для объектов-генераторов.1415#### `PyTypeObject PyGen_Type`1617Объект типа, соответствующий объектам-генераторам.1819#### `int PyGen_Check(PyObject *ob)`2021Возвращает истину, если *ob* является объектом-генератором; *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.2223#### `int PyGen_CheckExact(PyObject *ob)`2425Возвращает истину, если тип *ob* – [`PyGen_Type`](https://python-all.ru/3.10/c-api/gen.html#c.PyGen_Type); *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.2627#### `PyObject *PyGen_New(PyFrameObject *frame)`2829*Возвращаемое значение: новая ссылка.*3031Создаёт и возвращает новый объект-генератор на основе объекта *frame*. Функция забирает ссылку на *frame*. Аргумент не должен быть `NULL`.3233#### `PyObject *PyGen_NewWithQualName(PyFrameObject *frame, PyObject *name, PyObject *qualname)`3435*Возвращаемое значение: новая ссылка.*3637Создаёт и возвращает новый объект-генератор на основе объекта *frame*, при этом `__name__` и `__qualname__` устанавливаются в *name* и *qualname*. Функция забирает ссылку на *frame*. Аргумент *frame* не должен быть `NULL`.38