Spaces:
Running on Zero
Running on Zero
File size: 2,212 Bytes
9273228 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | # 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.
|