New in version 2.2.
There are only a couple of functions specifically for working with iterators.
PyObject *o) |
PyObject *o) |
To write a loop which iterates over an iterator, the C code should look something like this:
PyObject *iterator = PyObject_GetIter(obj); PyObject *item; if (iterator == NULL) { /* propagate error */ } while (item = PyIter_Next(iterator)) { /* do something with item */ ... /* release reference when done */ Py_DECREF(item); } Py_DECREF(iterator); if (PyErr_Occurred()) { /* propagate error */ } else { /* continue doing useful work */ }
See About this document... for information on suggesting changes.