You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.6 KiB

  1. .. highlightlang:: c
  2. .. _iterator-objects:
  3. Iterator Objects
  4. ----------------
  5. Python provides two general-purpose iterator objects. The first, a sequence
  6. iterator, works with an arbitrary sequence supporting the :meth:`__getitem__`
  7. method. The second works with a callable object and a sentinel value, calling
  8. the callable for each item in the sequence, and ending the iteration when the
  9. sentinel value is returned.
  10. .. c:var:: PyTypeObject PySeqIter_Type
  11. Type object for iterator objects returned by :c:func:`PySeqIter_New` and the
  12. one-argument form of the :func:`iter` built-in function for built-in sequence
  13. types.
  14. .. c:function:: int PySeqIter_Check(op)
  15. Return true if the type of *op* is :c:data:`PySeqIter_Type`.
  16. .. c:function:: PyObject* PySeqIter_New(PyObject *seq)
  17. Return an iterator that works with a general sequence object, *seq*. The
  18. iteration ends when the sequence raises :exc:`IndexError` for the subscripting
  19. operation.
  20. .. c:var:: PyTypeObject PyCallIter_Type
  21. Type object for iterator objects returned by :c:func:`PyCallIter_New` and the
  22. two-argument form of the :func:`iter` built-in function.
  23. .. c:function:: int PyCallIter_Check(op)
  24. Return true if the type of *op* is :c:data:`PyCallIter_Type`.
  25. .. c:function:: PyObject* PyCallIter_New(PyObject *callable, PyObject *sentinel)
  26. Return a new iterator. The first parameter, *callable*, can be any Python
  27. callable object that can be called with no parameters; each call to it should
  28. return the next item in the iteration. When *callable* returns a value equal to
  29. *sentinel*, the iteration will be terminated.