Retour à la leçon
Mission

Mission : diagnostiquer un générateur déjà épuisé

Comprendre pourquoi un générateur ne peut être parcouru qu'une seule fois, puis convertir une classe itérateur verbeuse en générateur et écrire une délégation récursive.

Contexte

Un rapport statistique appelle resultats = filtrer_erreurs(logs) (une fonction générateur), calcule total = sum(resultats) pour compter les erreurs, puis tente d'afficher for r in resultats: print(r) juste après pour lister ces erreurs. La boucle ne s'exécute jamais et personne ne comprend pourquoi, alors que filtrer_erreurs fonctionne parfaitement en isolation.

Tu dois expliquer ce comportement, réécrire une classe itérateur verbeuse en générateur, puis écrire une fonction qui aplatit une structure de listes imbriquées avec yield from.