gen.md
1> **Источник:** https://python-all.ru/3.6/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.6/c-api/gen.html#c.PyGen_New) или [`PyGen_NewWithQualName()`](https://python-all.ru/3.6/c-api/gen.html#c.PyGen_NewWithQualName).1011**`PyGenObject`**1213C-структура, используемая для объектов-генераторов.1415**[PyTypeObject](https://python-all.ru/3.6/c-api/type.html#c.PyTypeObject) `PyGen_Type`**1617Объект типа, соответствующий объектам-генераторам.1819#### `int PyGen_Check(PyObject *ob)`2021Возвращает истину, если *ob* является объектом-генератором; *ob* не должен быть *NULL*.2223#### `int PyGen_CheckExact(PyObject *ob)`2425Возвращает истину, если тип *ob* – *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