Содержание страницы
Объекты-генераторы¶Generator Objects
Объекты-генераторы – это то, что Python использует для реализации итераторов генераторов. Обычно они создаются путём итерации по функции, которая возвращает значения, а не явным вызовом PyGen_New() или PyGen_NewWithQualName().
-
type PyGenObject¶
C-структура, используемая для объектов-генераторов.
-
PyTypeObject PyGen_Type¶
Объект типа, соответствующий объектам-генераторам.
-
int PyGen_Check(PyObject *ob)¶
Возвращает истину, если ob является объектом-генератором; ob не должен быть
NULL. Эта функция всегда завершается успешно.
-
int PyGen_CheckExact(PyObject *ob)¶
Возвращает истину, если тип ob –
PyGen_Type; ob не должен бытьNULL. Эта функция всегда завершается успешно.
-
PyObject *PyGen_New(PyFrameObject *frame)¶
- Возвращаемое значение: новая ссылка.
Создаёт и возвращает новый объект-генератор на основе объекта frame. Ссылка на frame «перехватывается» этой функцией (даже при ошибке). Аргумент не должен быть
NULL.Устарело с версии 3.16, будет удалено в версии 3.18: Эта функция не использовалась начиная с 3.10. Также невозможно сконструировать подходящий объект frame для вызова этой функции.
-
PyObject *PyGen_NewWithQualName(PyFrameObject *frame, PyObject *name, PyObject *qualname)¶
- Возвращаемое значение: новая ссылка.
Создаёт и возвращает новый объект-генератор на основе объекта frame, с
__name__и__qualname__, установленными в name и qualname. Ссылка на frame «перехватывается» этой функцией (даже при ошибке). Аргумент frame не должен бытьNULL.Устарело с версии 3.16, будет удалено в версии 3.18: Эта функция не использовалась начиная с 3.10. Также невозможно сконструировать подходящий объект frame для вызова этой функции.
-
PyCodeObject *PyGen_GetCode(PyGenObject *gen)¶
Возвращает новую сильную ссылку на объект кода, обёрнутый в gen. Эта функция всегда завершается успешно.
Асинхронные объекты-генераторы¶Asynchronous Generator Objects
См. также
-
PyTypeObject PyAsyncGen_Type¶
Объект типа, соответствующий асинхронным объектам-генераторам. Доступен как
types.AsyncGeneratorTypeна уровне Python.Добавлено в версии 3.6.
-
PyObject *PyAsyncGen_New(PyFrameObject *frame, PyObject *name, PyObject *qualname)¶
Создаёт новый асинхронный генератор, оборачивающий frame, с
__name__и__qualname__, установленными в name и qualname. frame «перехватывается» этой функцией (даже при ошибке) и не должен бытьNULL.В случае успеха эта функция возвращает сильную ссылку на новый асинхронный генератор. В случае неудачи возвращает
NULLс установленным исключением.Добавлено в версии 3.6.
Устарело с версии 3.16, будет удалено в версии 3.18: Эта функция не использовалась начиная с 3.10. Также невозможно сконструировать подходящий объект frame для вызова этой функции.
Устаревший API¶Deprecated API
-
PyAsyncGenASend_CheckExact(op)¶
Это API было включено в C API Python по ошибке.
Оно приведено здесь исключительно для полноты; не используйте это API.
Soft deprecated since version 3.14.