Генератор об’єктів

Об’єкти-генератори – це те, що 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)
Return value: New reference.

Create and return a new generator object based on the frame object. A reference to frame is «stolen» by this function (even on error). The argument must not be NULL.

Deprecated since version 3.16, will be removed in version 3.18: This function has not been used since 3.10. It is also impossible to construct a proper frame object to call this function.

PyObject *PyGen_NewWithQualName(PyFrameObject *frame, PyObject *name, PyObject *qualname)
Return value: New reference.

Create and return a new generator object based on the frame object, with __name__ and __qualname__ set to name and qualname. A reference to frame is «stolen» by this function (even on error). The frame argument must not be NULL.

Deprecated since version 3.16, will be removed in version 3.18: This function has not been used since 3.10. It is also impossible to construct a proper frame object to call this function.

PyCodeObject *PyGen_GetCode(PyGenObject *gen)

Return a new strong reference to the code object wrapped by gen. This function always succeeds.

Asynchronous Generator Objects

Дивись також

PEP 525

PyTypeObject PyAsyncGen_Type

The type object corresponding to asynchronous generator objects. This is available as types.AsyncGeneratorType in the Python layer.

Added in version 3.6.

PyObject *PyAsyncGen_New(PyFrameObject *frame, PyObject *name, PyObject *qualname)

Create a new asynchronous generator wrapping frame, with __name__ and __qualname__ set to name and qualname. frame is «stolen» by this function (even on error) and must not be NULL.

On success, this function returns a strong reference to the new asynchronous generator. On failure, this function returns NULL with an exception set.

Added in version 3.6.

Deprecated since version 3.16, will be removed in version 3.18: This function has not been used since 3.10. It is also impossible to construct a proper frame object to call this function.

int PyAsyncGen_CheckExact(PyObject *op)

Return true if op is an asynchronous generator object, false otherwise. This function always succeeds.

Added in version 3.6.

Deprecated API

PyAsyncGenASend_CheckExact(op)

This is an API that was included in Python’s C API by mistake.

It is solely here for completeness; do not use this API.

Soft deprecated since version 3.14.