Leçon 1 / 10 — Chapitre 5: Itérateurs, générateurs et context managers
Le protocole d'itération : __iter__ et __next__
Une boucle for sur une liste fonctionne grâce à un mécanisme précis : Python appelle __iter__ sur la liste pour obtenir un itérateur, puis appelle __next__ sur cet itérateur, encore et encore, jusqu'à ce qu'il n'y ait plus rien.
nombres = [10, 20, 30]
iterateur = iter(nombres)
print(next(iterateur))
print(next(iterateur))
print(next(iterateur))
Ce code affiche 10, 20, puis 30. iter(nombres) appelle __iter__ sur la liste et renvoie un itérateur ; next(iterateur) appelle __next__ dessus, qui renvoie une valeur à la fois, en avançant à chaque appel.
Un quatrième appel à next(iterateur) lèverait une StopIteration : c'est précisément cette erreur qu'une boucle for intercepte automatiquement en interne, pour savoir quand s'arrêter — sans qu'on la voie jamais directement dans du code normal.
for n in nombres:
print(n)
Cette boucle for fait exactement la même chose que le code du dessus, mais Python gère iter(), next() et l'arrêt sur StopIteration automatiquement, en coulisses.
À vous de jouer : avec iter() et next() appelés manuellement sur une liste, affichez ses trois premiers éléments un par un.
Continuez ce module
Débloquez les leçons restantes ainsi que l'attestation finale.
9 000 XOF / 13,72 € / 14,95 $
Débloquez les 94 leçons restantes de ce module
Pour vous communiquer où envoyer le paiement.
Moyen de paiement souhaité
Nous vous contactons pour le paiement — activé dès réception.