Création d'itérateurs en Python
Les itérateurs Python sont des objets qui adhèrent au protocole itérateur, comportant les méthodes __iter__() et __next__().
iter Méthode :
La méthode __iter__() renvoie l'objet itérateur, automatiquement invoqué au début des boucles.
next Méthode :
La méthode __next__() récupère la valeur suivante et est implicitement appelée lors des incréments de boucle. Il déclenche une exception StopIteration lorsqu'aucune valeur n'est disponible, qui est détectée par les constructions de boucle et utilisée pour arrêter l'itération.
Par exemple, considérons la classe de compteur simpliste suivante :
class Counter: def __init__(self, low, high): self.current = low - 1 self.high = high def __iter__(self): return self def __next__(self): # Python 2: def next(self) self.current += 1 if self.current < self.high: return self.current raise StopIteration
Quand en utilisant le compteur :
for c in Counter(3, 9): print(c)
Le résultat sera :
3 4 5 6 7 8
Alternativement, les générateurs offrent une approche plus simple de la création d'itérateurs :
def counter(low, high): current = low while current < high: yield current current += 1
Emploi du générateur :
for c in counter(3, 9): print(c)
Produit une sortie identique. En interne, le générateur ressemble à la classe Counter, prenant en charge le protocole itérateur.
Pour un aperçu complet des itérateurs, veuillez vous référer à l'article de David Mertz, « Itérateurs et générateurs simples ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!