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

Объекты-генераторы - это то, что Python использует для реализации итераторов-генераторов. Обычно они создаются путем итерации над функцией, которая выдает значения, а не путем явного вызова PyGen_New() или PyGen_NewWithQualName().

type PyGenObject

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

PyTypeObject PyGen_Type

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

int PyGen_Check(PyObject *ob)

Возвращает true, если ob является объектом генератора; ob не должен быть NULL. Эта функция всегда успешна.

int PyGen_CheckExact(PyObject *ob)

Возвращает true, если тип ob равен PyGen_Type; ob не должен быть NULL. Эта функция всегда успешна.

PyObject *PyGen_New(PyFrameObject *frame)
Возвращаемое значение: Новая ссылка.

Создает и возвращает новый объект генератора на основе объекта frame. Ссылка на frame похищается этой функцией. Аргумент не должен быть NULL.

PyObject *PyGen_NewWithQualName(PyFrameObject *frame, PyObject *name, PyObject *qualname)
Возвращаемое значение: Новая ссылка.

Создает и возвращает новый объект-генератор, основанный на объекте frame, с __name__ и __qualname__, установленными на name и qualname. Ссылка на frame похищается этой функцией. Аргумент frame не должен быть равен NULL.