PaliSkill
← Python avancé

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.