Avancé
🧠 Fondamentaux
30 XP
0 personnes ont réussi
__iter__ itérable
Quand tu ecris for x in quelque_chose, Python appelle la méthode __iter__ de l'objet. Si cette méthode utilise yield, elle crée un générateur qui produit les éléments un par un.
C'est comme un distributeur de tickets : il te donne le prochain numéro a chaque fois que tu le lui demandes, sans avoir besoin de stocker tous les numéros en mémoire.
Exemple :
class Decompte: def __init__(self, debut): self.debut = debut def __iter__(self): n = self.debut while n > 0: yield n n -= 1
for x in Decompte(3): print(x) # 3, 2, 1
Crée une classe Intervalle(debut, fin) qui produit les entiers de debut a fin (exclu) quand on itere dessus.
class Intervalle:
def __init__(self, debut, fin):
self.debut = debut
self.fin = fin
def __iter__(self):
current = self.debut
while current < self.fin:
yield current
current += 1