Introduction aux Fonctions Génératrices et à Yield
Glissez pour afficher le menu
Les fonctions génératrices sont un type particulier de fonction en Python qui permettent de créer des itérateurs de manière simple et lisible. Contrairement aux fonctions classiques qui renvoient une seule valeur puis se terminent, les fonctions génératrices peuvent suspendre leur exécution et la reprendre plus tard, produisant ainsi une série de valeurs une à une.
yield est un mot-clé Python utilisé à l'intérieur des fonctions génératrices pour produire une valeur et suspendre l'état de la fonction. Lorsque le générateur reprend, il continue là où il s'était arrêté.
Cela permet d'itérer sur des séquences une valeur à la fois sans créer de listes intermédiaires, rendant votre code plus économe en mémoire.
Comment fonctionnent les fonctions génératrices ?
Une fonction génératrice ressemble à une fonction normale mais utilise le mot-clé yield au lieu de return. Lorsque Python rencontre l'instruction yield, il suspend l'exécution de la fonction et renvoie la valeur produite à l'appelant. La prochaine fois qu'une valeur est demandée, la fonction reprend exactement là où elle s'était arrêtée.
Fonctionnement d'une fonction génératrice
- Définir une fonction avec
defet inclure au moins une instructionyield; - Lors de l'appel de la fonction, le code à l'intérieur n'est pas exécuté immédiatement. À la place, un objet générateur est renvoyé ;
- À chaque demande de valeur suivante (avec
next()ou une bouclefor), la fonction s'exécute jusqu'à atteindreyield; - L'instruction
yieldrenvoie une valeur à l'appelant et suspend l'état de la fonction ; - Lorsqu'une autre valeur est demandée, la fonction reprend après le dernier
yield; - La fonction continue jusqu'à ce qu'il n'y ait plus de valeurs à produire ou qu'elle atteigne un
returnou la fin de son code.
Avantages de l'utilisation des fonctions génératrices :
- Économie de mémoire en produisant les éléments un par un au lieu de créer de grandes listes ;
- Code lisible et maintenable pour les flux de données ou les séquences ;
- Facilité de gestion des ensembles de données infinis ou très volumineux sans tout charger en mémoire.
Les fonctions génératrices sont un outil puissant pour le traitement efficace des données et sont essentielles pour maîtriser le style de programmation fonctionnelle en Python. Ensuite, vous verrez comment écrire et utiliser des fonctions génératrices avec des exemples de code pratiques.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion