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

Python fournit deux itérateurs génériques. Le premier est un itérateur
de séquence, il fonctionne avec n'importe quelle séquence gérant la
méthode "__getitem__()". Le second fonctionne avec un objet appelable
et une valeur sentinelle, il appelle l'appelable pour obtenir chaque
élément de la séquence, et l'itération se termine lorsque la
sentinelle est reçue.

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)

   Renvoie vrai si *op* est de type "PySeqIter_Type".

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)

   Renvoie vrai si *op* est de type "PyCallIter_Type".

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.
