xref: /third_party/python/Doc/c-api/gen.rst (revision 7db96d56)
17db96d56Sopenharmony_ci.. highlight:: c
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_ci.. _gen-objects:
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ciGenerator Objects
67db96d56Sopenharmony_ci-----------------
77db96d56Sopenharmony_ci
87db96d56Sopenharmony_ciGenerator objects are what Python uses to implement generator iterators. They
97db96d56Sopenharmony_ciare normally created by iterating over a function that yields values, rather
107db96d56Sopenharmony_cithan explicitly calling :c:func:`PyGen_New` or :c:func:`PyGen_NewWithQualName`.
117db96d56Sopenharmony_ci
127db96d56Sopenharmony_ci
137db96d56Sopenharmony_ci.. c:type:: PyGenObject
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ci   The C structure used for generator objects.
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_ci
187db96d56Sopenharmony_ci.. c:var:: PyTypeObject PyGen_Type
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_ci   The type object corresponding to generator objects.
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_ci
237db96d56Sopenharmony_ci.. c:function:: int PyGen_Check(PyObject *ob)
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ci   Return true if *ob* is a generator object; *ob* must not be ``NULL``.  This
267db96d56Sopenharmony_ci   function always succeeds.
277db96d56Sopenharmony_ci
287db96d56Sopenharmony_ci
297db96d56Sopenharmony_ci.. c:function:: int PyGen_CheckExact(PyObject *ob)
307db96d56Sopenharmony_ci
317db96d56Sopenharmony_ci   Return true if *ob*'s type is :c:type:`PyGen_Type`; *ob* must not be
327db96d56Sopenharmony_ci   ``NULL``.  This function always succeeds.
337db96d56Sopenharmony_ci
347db96d56Sopenharmony_ci
357db96d56Sopenharmony_ci.. c:function:: PyObject* PyGen_New(PyFrameObject *frame)
367db96d56Sopenharmony_ci
377db96d56Sopenharmony_ci   Create and return a new generator object based on the *frame* object.
387db96d56Sopenharmony_ci   A reference to *frame* is stolen by this function. The argument must not be
397db96d56Sopenharmony_ci   ``NULL``.
407db96d56Sopenharmony_ci
417db96d56Sopenharmony_ci.. c:function:: PyObject* PyGen_NewWithQualName(PyFrameObject *frame, PyObject *name, PyObject *qualname)
427db96d56Sopenharmony_ci
437db96d56Sopenharmony_ci   Create and return a new generator object based on the *frame* object,
447db96d56Sopenharmony_ci   with ``__name__`` and ``__qualname__`` set to *name* and *qualname*.
457db96d56Sopenharmony_ci   A reference to *frame* is stolen by this function.  The *frame* argument
467db96d56Sopenharmony_ci   must not be ``NULL``.
47