Spaces:
Running on Zero
Running on Zero
| # Generator Objects {#gen-objects} | |
| Generator objects are what Python uses to implement generator iterators. They are normally created by iterating over a function that yields values, rather than explicitly calling `PyGen_New`{.interpreted-text role="c:func"} or `PyGen_NewWithQualName`{.interpreted-text role="c:func"}. | |
| > The C structure used for generator objects. | |
| > The type object corresponding to generator objects. | |
| > Return true if *ob* is a generator object; *ob* must not be `NULL`. This function always succeeds. | |
| > Return true if *ob*\'s type is `PyGen_Type`{.interpreted-text role="c:type"}; *ob* must not be `NULL`. This function always succeeds. | |
| > Create and return a new generator object based on the *frame* object. A reference to *frame* is stolen by this function. The argument must not be `NULL`. | |
| > 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. The *frame* argument must not be `NULL`. | |
| > Return a new `strong reference`{.interpreted-text role="term"} to the code object wrapped by *gen*. This function always succeeds. | |
| ## Asynchronous Generator Objects | |
| ::: seealso | |
| `525`{.interpreted-text role="pep"} | |
| ::: | |
| > The type object corresponding to asynchronous generator objects. This is available as `types.AsyncGeneratorType`{.interpreted-text role="class"} in the Python layer. | |
| > | |
| > ::: versionadded | |
| > 3.6 | |
| > ::: | |
| > 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`{.interpreted-text role="term"} to the new asynchronous generator. On failure, this function returns `NULL` with an exception set. | |
| > | |
| > ::: versionadded | |
| > 3.6 | |
| > ::: | |
| > Return true if *op* is an asynchronous generator object, false otherwise. This function always succeeds. | |
| > | |
| > ::: versionadded | |
| > 3.6 | |
| > ::: | |
| ## Deprecated API | |
| > This is a `soft deprecated`{.interpreted-text role="term"} API that was included in Python\'s C API by mistake. | |
| > | |
| > It is solely here for completeness; do not use this API. | |