Home | History | Annotate | Download | only in c-api
      1 .. highlightlang:: c
      2 
      3 .. _iterator-objects:
      4 
      5 Iterator Objects
      6 ----------------
      7 
      8 Python provides two general-purpose iterator objects.  The first, a sequence
      9 iterator, works with an arbitrary sequence supporting the :meth:`__getitem__`
     10 method.  The second works with a callable object and a sentinel value, calling
     11 the callable for each item in the sequence, and ending the iteration when the
     12 sentinel value is returned.
     13 
     14 
     15 .. c:var:: PyTypeObject PySeqIter_Type
     16 
     17    Type object for iterator objects returned by :c:func:`PySeqIter_New` and the
     18    one-argument form of the :func:`iter` built-in function for built-in sequence
     19    types.
     20 
     21    .. versionadded:: 2.2
     22 
     23 
     24 .. c:function:: int PySeqIter_Check(op)
     25 
     26    Return true if the type of *op* is :c:data:`PySeqIter_Type`.
     27 
     28    .. versionadded:: 2.2
     29 
     30 
     31 .. c:function:: PyObject* PySeqIter_New(PyObject *seq)
     32 
     33    Return an iterator that works with a general sequence object, *seq*.  The
     34    iteration ends when the sequence raises :exc:`IndexError` for the subscripting
     35    operation.
     36 
     37    .. versionadded:: 2.2
     38 
     39 
     40 .. c:var:: PyTypeObject PyCallIter_Type
     41 
     42    Type object for iterator objects returned by :c:func:`PyCallIter_New` and the
     43    two-argument form of the :func:`iter` built-in function.
     44 
     45    .. versionadded:: 2.2
     46 
     47 
     48 .. c:function:: int PyCallIter_Check(op)
     49 
     50    Return true if the type of *op* is :c:data:`PyCallIter_Type`.
     51 
     52    .. versionadded:: 2.2
     53 
     54 
     55 .. c:function:: PyObject* PyCallIter_New(PyObject *callable, PyObject *sentinel)
     56 
     57    Return a new iterator.  The first parameter, *callable*, can be any Python
     58    callable object that can be called with no parameters; each call to it should
     59    return the next item in the iteration.  When *callable* returns a value equal to
     60    *sentinel*, the iteration will be terminated.
     61 
     62    .. versionadded:: 2.2
     63