Spec-Zone.ru › Python 3.14

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

Объекты-генераторы используются в 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. Эта функция всегда завершается успешно.

Объекты асинхронных генераторов

См. также

PEP 525

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API