Générateurs Python
Les générateurs en Python sont des fonctions qui permettent de créer des itérateurs pour parcourir des séquences d’éléments. Ils sont utiles lorsque vous avez besoin de générer une séquence d’éléments, mais que vous ne voulez pas créer tous les éléments en mémoire en même temps.
Voici comment utiliser un générateur pour générer une série de nombres :
def my_range(n): current = 0 while current < n: yield current current += 1 # Utiliser le générateur for n in my_range(5): print(n) # Affiche 0, puis 1, puis 2, puis 3, puis 4
Pour créer un générateur, vous devez définir une fonction qui utilise le mot-clé
au lieu de
. Lorsque vous appelez la fonction, elle ne renvoie pas de valeur, mais renvoie un itérateur qui peut être utilisé pour parcourir les valeurs générées par le générateur.
Chaque fois que vous appelez la méthode
de l’itérateur, le générateur exécute le code jusqu’à la prochaine instruction
, qui renvoie la valeur générée. Lorsque le générateur a terminé, il lève l’exception
.
Les générateurs sont utiles pour économiser de l’espace mémoire lorsque vous avez besoin de générer une grande séquence d’éléments, car ils ne stockent qu’un élément à la fois en mémoire. Ils sont également utiles pour implémenter des algorithmes qui génèrent des éléments au fur et à mesure, plutôt que de les générer tous en une seule fois.