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

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

Створіть і поверніть новий об’єкт-генератор на основі об’єкта frame. Ця функція викрадає посилання на frame. Аргумент не має бути 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.

Створіть і поверніть новий об’єкт генератора на основі об’єкта frame із значеннями name і qualname для __name__ і __qualname__. Ця функція викрадає посилання на frame. Аргумент frame не має бути 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 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.