


Comment les méthodes `__iter__` et `__next__` de Python permettent-elles la création d'itérateurs ?
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte

Comment télécharger des fichiers dans Python

Comment utiliser la belle soupe pour analyser HTML?

Comment travailler avec des documents PDF à l'aide de Python

Comment se cacher en utilisant Redis dans les applications Django

Présentation de la boîte à outils en langage naturel (NLTK)

Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch?
