Exercices POO __iter__ itérable
🎉

Bravo!

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.

Exemple :
list(Intervalle(1, 5)) renvoie [1, 2, 3, 4]
list(Intervalle(5, 5)) renvoie []

Tests (2/4)

Itération
assert list(Intervalle(1, 5)) == [1, 2, 3, 4]
Vide
assert list(Intervalle(5, 5)) == []

+ 0 tests cachés

Indices (3 disponibles)

solution.py