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