Объекты-генераторы
Объекты-генераторы используются в Python для реализации итераторов-генераторов. Обычно они создаются при переборе функции, возвращающей значения с помощью yield, а не явным вызовом 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.
-
PyCodeObject *PyGen_GetCode(PyGenObject *gen) -
Возвращает новую сильную ссылку на объект кода, обернутый в gen. Эта функция всегда завершается успешно.
Объекты асинхронных генераторов
См. также
-
PyTypeObject PyAsyncGen_Type -
Объект типа, соответствующий объектам асинхронных генераторов. В Python этот тип доступен как
types.AsyncGeneratorType.Добавлено в версии 3.6.
-
PyObject *PyAsyncGen_New(PyFrameObject *frame, PyObject *name, PyObject *qualname) -
Создает новый асинхронный генератор, оборачивающий frame, задавая
__name__и__qualname__значениями name и qualname. Ссылка на frame «передается во владение» этой функции (даже в случае ошибки); frame не должен бытьNULL.В случае успеха эта функция возвращает сильную ссылку на новый асинхронный генератор. В случае ошибки эта функция возвращает
NULLи устанавливает исключение.Добавлено в версии 3.6.
-
int PyAsyncGen_CheckExact(PyObject *op) -
Возвращает true, если op является объектом асинхронного генератора, и false в противном случае. Эта функция всегда завершается успешно.
Добавлено в версии 3.6.
Устаревший API
-
PyAsyncGenASend_CheckExact(op) -
Этот API был ошибочно включен в C API Python.
Он приведен здесь только для полноты; не используйте этот API.
Мягко объявлен устаревшим начиная с версии 3.14.
© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/c-api/gen.html