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

Python fournit deux itérateurs d'usage générique. Le premier est un
itérateur de séquence, il fonctionne avec n'importe quelle séquence
implémentant la méthode "__getitem__()". Le second fonctionne avec un
objet appelable et une valeur sentinelle, l'appelable permet d'obtenir
chaque élément de la séquence, et l'itération se termine lorsque la
sentinelle est atteinte.

PyTypeObject PySeqIter_Type

   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(op)

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

PyObject* PySeqIter_New(PyObject *seq)
    *Return value: New reference.*

   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

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

int PyCallIter_Check(op)

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

PyObject* PyCallIter_New(PyObject *callable, PyObject *sentinel)
    *Return value: New reference.*

   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.
