Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Le Protocole d'Itérateur | Python Iterators
Concepts de Programmation Fonctionnelle en Python

bookLe Protocole d'Itérateur

Glissez pour afficher le menu

En Python, le protocole d'itérateur est un ensemble de méthodes qui permet aux objets d'être parcourus, les rendant compatibles avec des constructions telles que les boucles for. Les deux méthodes essentielles impliquées sont __iter__ et __next__. Lorsque vous utilisez une boucle for sur un objet, Python appelle en interne la méthode __iter__ de l'objet pour obtenir un itérateur. Cet itérateur doit posséder une méthode __next__, qui retourne l'élément suivant de la séquence à chaque appel. Lorsqu'il n'y a plus d'éléments, __next__ doit lever une exception StopIteration pour signaler la fin de la séquence.

1234567891011121314151617181920212223242526
class SquaresIterator: # Initialize with the number of squares to generate def __init__(self, limit): self.limit = limit self.current = 0 # Return the iterator object (itself) def __iter__(self): return self # Return the next square, or stop if done def __next__(self): if self.current < self.limit: # Calculate square result = self.current ** 2 # Move to next number self.current += 1 return result # If no more items else: raise StopIteration for square in SquaresIterator(5): print(square)
copy

__init__ – Phase d'initialisation

Lors de la création de l'itérateur, il reçoit :

  • limit → combien de nombres à générer ;

  • Il définit current = 0 → le point de départ ;

  • Il prépare tout ce qui est nécessaire pour l'itération.

__iter__ - Rendre l'objet itérable

  • Retourne self (l'objet lui-même) ;
  • C'est ce qui permet de l'utiliser dans une boucle for.

__next__ - Produire des valeurs

Cette méthode s'exécute à chaque fois que la boucle demande l'élément suivant :

  • Si current < limit :
    • Calculer current² ;
    • Incrémenter current de 1 ;
    • Retourner le résultat.
  • Si currentlimit :
    • Lever l'exception StopIteration pour arrêter automatiquement la boucle.
question mark

Laquelle des propositions suivantes est requise pour qu'un objet soit considéré comme itérable en Python ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 3

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 5. Chapitre 3
some-alt