(original) (raw)

changeset: 86192:0820e8394d96 branch: 2.7 parent: 86189:2ce77d9ed4b0 user: Raymond Hettinger python@rcn.com date: Wed Oct 09 22:39:11 2013 -0700 files: Doc/c-api/iter.rst description: Issue #19005: Fix documentation for PyIter_Next(). diff -r 2ce77d9ed4b0 -r 0820e8394d96 Doc/c-api/iter.rst --- a/Doc/c-api/iter.rst Wed Oct 09 13:25:11 2013 -0500 +++ b/Doc/c-api/iter.rst Wed Oct 09 22:39:11 2013 -0700 @@ -7,7 +7,7 @@ .. versionadded:: 2.2 -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) @@ -17,11 +17,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