Itérateurs
**********

Python provides two general-purpose iterator objects.  The first, a
sequence iterator, works with an arbitrary sequence supporting the
"__getitem__()" method.  The second works with a callable object and a
sentinel value, calling the callable for each item in the sequence,
and ending the iteration when the sentinel value is returned.

PyTypeObject PySeqIter_Type
    * Part of the Stable ABI.*

   Type des itérateurs renvoyés par les fonctions "PySeqIter_New()" et
   la forme à un argument de la fonction native "iter()" pour les
   séquences natives.

int PySeqIter_Check(PyObject *op)

   Return true if the type of *op* is "PySeqIter_Type".  This function
   always succeeds.

PyObject *PySeqIter_New(PyObject *seq)
    *Valeur de retour : nouvelle référence.** Part of the Stable ABI.*

   Renvoie un itérateur sur la séquence *seq*. L'itération prend fin
   lorsque la séquence lève "IndexError" lors d'une tentative d'accès.

PyTypeObject PyCallIter_Type
    * Part of the Stable ABI.*

   Type de l'itérateur renvoyé par les fonctions "PyCallIter_New()" et
   "iter()" à deux arguments.

int PyCallIter_Check(PyObject *op)

   Return true if the type of *op* is "PyCallIter_Type".  This
   function always succeeds.

PyObject *PyCallIter_New(PyObject *callable, PyObject *sentinel)
    *Valeur de retour : nouvelle référence.** Part of the Stable ABI.*

   Renvoie un nouvel itérateur. Le premier paramètre, *callable*, peut
   être n'importe quel objet Python appelable sans aucun paramètre ;
   chaque appel doit renvoyer l'élément suivant de l'itération.
   Lorsque *callable* renvoie une valeur égale à *sentinel*,
   l'itération prend fin.
