(original) (raw)

changeset: 86193:249ba942a6d4 branch: 3.3 parent: 86190:f917b25f4786 user: Raymond Hettinger python@rcn.com date: Wed Oct 09 22:42:46 2013 -0700 files: Doc/c-api/iter.rst description: Issue #19005: Fix documentation for PyIter_Next(). diff -r f917b25f4786 -r 249ba942a6d4 Doc/c-api/iter.rst --- a/Doc/c-api/iter.rst Wed Oct 09 13:27:36 2013 -0500 +++ b/Doc/c-api/iter.rst Wed Oct 09 22:42:46 2013 -0700 @@ -5,7 +5,7 @@ Iterator Protocol ================= -There are only a couple of functions specifically for working with iterators. +There are two functions specifically for working with iterators. .. c:function:: int PyIter_Check(PyObject *o) @@ -14,11 +14,10 @@ .. c:function:: PyObject* PyIter_Next(PyObject *o) - Return the next value from the iteration *o*. If the object is an iterator, - this retrieves the next value from the iteration, and returns *NULL* with no - exception set if there are no remaining items. If the object is not an - iterator, :exc:`TypeError` is raised, or if there is an error in retrieving the - item, returns *NULL* and passes along the exception. + Return the next value from the iteration *o*. The object must be an iterator + (it is up to the caller to check this). If there are no remaining values, + returns *NULL* with no exception set. If an error occurs while retrieving + the item, returns *NULL* and passes along the exception. To write a loop which iterates over an iterator, the C code should look something like this:: /python@rcn.com