]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/python/contrib/Doc/c-api/iterator.rst
Inital import
[l4.git] / l4 / pkg / python / contrib / Doc / c-api / iterator.rst
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 .. cvar:: PyTypeObject PySeqIter_Type
16
17    Type object for iterator objects returned by :cfunc:`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 .. cfunction:: int PySeqIter_Check(op)
25
26    Return true if the type of *op* is :cdata:`PySeqIter_Type`.
27
28    .. versionadded:: 2.2
29
30
31 .. cfunction:: 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 .. cvar:: PyTypeObject PyCallIter_Type
41
42    Type object for iterator objects returned by :cfunc:`PyCallIter_New` and the
43    two-argument form of the :func:`iter` built-in function.
44
45    .. versionadded:: 2.2
46
47
48 .. cfunction:: int PyCallIter_Check(op)
49
50    Return true if the type of *op* is :cdata:`PyCallIter_Type`.
51
52    .. versionadded:: 2.2
53
54
55 .. cfunction:: 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