Generator Objects¶
Generator objects are what Python uses to implement generator iterators. They
are normally created by calling a generator function, rather than explicitly
calling PyGen_New() or PyGen_NewWithQualName().
-
type PyGenObject¶
The C structure used for generator objects.
-
PyTypeObject PyGen_Type¶
The type object corresponding to generator objects.
-
int PyGen_Check(PyObject *ob)¶
Return true if ob is a generator object; ob must not be NULL. This
function always succeeds.
-
int PyGen_CheckExact(PyObject *ob)¶
Return true if ob’s type is PyGen_Type; ob must not be
NULL. This function always succeeds.
-
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¶
-
PyTypeObject PyAsyncGen_Type¶
The type object corresponding to asynchronous generator objects. This is
available as types.AsyncGeneratorType in the Python layer.
-
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.
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.
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.
©
Copyright 2001 Python Software Foundation.
This page is licensed under the Python Software Foundation License Version 2.
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
See
History and License for more information.
The Python Software Foundation is a non-profit corporation.
Please donate.
Last updated on Nov 12, 2026 (17:37 UTC).
Found a bug?
Created using
Sphinx 9.1.1.