Maison > Article > développement back-end > Protocole itérateur et méthodes de traversée en programmation Python
L'introduction de la partie précédente devrait nous permettre de comprendre et de maîtriser facilement les objets itérables et les itérateurs (Iterable & Iterator) en Python. Dans ce contenu, nous présenterons plus en détail le contenu associé des itérateurs.
Protocole itérateurEn Python, l'objet itérateur (Iterator) doit prendre en charge les deux méthodes suivantes, qui forment ensemble le protocole itérateur :1) __iter__() :
Cette méthode de l'objet Renvoie l'objet itérateur lui-même. Ceci est requis pour que les conteneurs et les itérateurs soient utilisés avec des instructions for-in. Vous pouvez également utiliser la fonction iter() intégrée, qui appelle essentiellement la méthode __iter__() en arrière-plan.2)__next__() :
Renvoie l'élément suivant de l'itérateur. S'il n'y a aucun autre élément, une exception StopIteration est levée. Vous pouvez également utiliser la fonction intégrée next() pour lire l'élément suivant, qui appelle essentiellement la méthode __next__(). Comme nous l'avons déjà dit, les listes, les tuples, les dictionnaires et les ensembles sont tous des types itérables. En d’autres termes, ce sont des types à partir desquels des itérateurs peuvent être obtenus. Regardez l'exemple : Extrait de code listing-01Le résultat d'entrée est le suivant :A B CDans l'exemple de code, nous définissons un tuple itérable. Appelez ensuite la fonction iter() sur cet objet itérable. La fonction iter() renvoie un itérateur, que nous nommons tupIter. Appelez ensuite la fonction next() plusieurs fois. Chaque fois que la fonction next() est exécutée, elle renverra automatiquement l'élément suivant de l'itérateur. Regardez l'exemple de code suivant : Code Fragment-02Le résultat de l'exécution est :
P yDans la liste de codes ci-dessus, la méthode __iter__() est appelée sur l'objet chaîne. Les objets chaîne implémentent le protocole itérateur, les chaînes sont donc des objets itérables contenant des séquences de caractères. L’appel de la méthode __iter__() renvoie directement un itérateur. Appelez ensuite la méthode __next__() via l'itérateur renvoyé pour afficher les éléments de l'itérateur un par un. En un mot, tant que l'objet implémente le protocole itérateur, vous pouvez utiliser les deux méthodes ci-dessus pour effectuer des appels itératifs sur l'objet. Parcours d'un itérateurComme nous l'avons vu dans l'introduction précédente, nous utilisons la fonction next() (ou la méthode __next__()) pour parcourir manuellement les éléments d'un itérateur. Lorsque la fonction next() atteint la fin de l'itérateur, il n'y a plus de données à renvoyer et vous obtiendrez une exception StopIteration. Veuillez consulter l'exemple : Liste de fragments de code-03Exécutez le programme ci-dessus, le résultat est similaire à ce qui suit :
10 20 30 Traceback (dernier appel le plus récent): Fichier ……, dans print(next(listIter)) StopItération |
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!