GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Table of Contents
  • Generator Objects
  • Frame objects
  • Coroutine Objects
  • Report a bug
  • Improve this page
  • Show source
  • index
  • modules
  • Python
  • 3.15.2 documentation
  • Python/C API reference manual
  • Concrete Objects Layer

This view

  • Original page
  • New address

GeezerVison is showing docs.python.org — Generator Objects

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.

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.

PyCodeObject *PyGen_GetCode(PyGenObject *gen)¶

Return a new strong reference to the code object wrapped by gen. This function always succeeds.

Asynchronous Generator Objects¶

See also

PEP 525

PyTypeObject PyAsyncGen_Type¶

The type object corresponding to asynchronous generator objects. This is available as types.AsyncGeneratorType in the Python layer.

Added in version 3.6.

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.

Added in version 3.6.

int PyAsyncGen_CheckExact(PyObject *op)¶

Return true if op is an asynchronous generator object, false otherwise. This function always succeeds.

Added in version 3.6.

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.

Soft deprecated since version 3.14.

© 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 (08:53 UTC). Found a bug?
Created using Sphinx 9.1.1.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.