La méthode __iter__
en Python est utilisée pour créer un itérateur à partir d'un objet de type conteneur. Un itérateur est un objet qui contient un nombre dénombrable d'éléments. On peut les récupérer un par un en utilisant la méthode next()
. Les itérateurs sont souvent utilisés en combinaison avec des boucles comme for
et while
.
La méthode __iter__
définit comment un objet est converti en un itérateur. Typiquement, elle retourne l'objet lui-même et l'objet doit également implémenter une méthode __next__
qui définit comment obtenir le prochain élément de l'itérateur. Lorsque tous les éléments ont été parcourus, la méthode __next__
doit lever l'exception StopIteration
.
Voici un exemple de code qui illustre l'utilisation de la méthode __iter__
:
class MaListe:
def __init__(self):
self.elements = []
def ajouter(self, elem):
self.elements.append(elem)
def __iter__(self):
# On retourne l'objet lui-même comme un itérateur
self.index = 0
return self
def __next__(self):
if self.index < len(self.elements):
result = self.elements[self.index]
self.index += 1
return result
else:
raise StopIteration
Dans cet exemple, nous avons créé une classe personnalisée qui agit comme une liste. Nous avons implémenté la méthode __iter__
pour retourner l'objet lui-même comme un itérateur. Ensuite, nous avons défini la méthode __next__
pour parcourir les éléments de la liste.
La méthode __iter__
peut être utilisée pour créer des itérateurs personnalisés qui fournissent une manière flexible et efficace de parcourir des structures de données complexes. C'est un outil très puissant pour la création d'objets orientés données en Python, et elle est couramment utilisée dans divers domaines, comme l'analyse de données, les graphes et les réseaux, et bien d'autres.