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.