|
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 |