Maison >développement back-end >Tutoriel Python >Comment les fermetures permettent-elles la préservation de l'état et l'encapsulation en Python ?
Les fermetures en Python
Les fermetures sont un concept élégant et puissant en Python, permettant aux fonctions de conserver l'accès aux variables à partir de la portée englobante. Cette fonctionnalité introduit la possibilité de créer des fonctions avec un état préservé, conduisant à un code plus polyvalent et plus efficace.
À la base, une fermeture est une fonction imbriquée qui peut accéder aux variables définies dans sa portée englobante, même après l'inclusion la fonction a fini de s'exécuter. Ceci est réalisé en créant un « objet de fermeture » qui capture les variables de la fonction englobante.
Pourquoi utiliser les fermetures ?
Les fermetures offrent plusieurs avantages :
Comment créer une fermeture
Créer une fermeture en Python implique de définir une fonction imbriquée dans une autre fonction :
def make_counter(): i = 0 def counter(): # counter() is a closure nonlocal i # Use nonlocal to access i from the enclosing scope i += 1 return i return counter c1 = make_counter() c2 = make_counter() print(c1(), c1(), c2(), c2())
Sortie :
1 2 1 2
Dans cet exemple, la fonction make_counter renvoie une fermeture qui maintient un décompte persistant. Le mot-clé nonlocal garantit que la fermeture du compteur a accès à la variable i définie dans la portée englobante.
Conclusion
Les fermetures sont un concept Python fondamental qui ouvre de nouvelles possibilités pour l'encapsulation, la gestion des états et la gestion des événements. Leur capacité à étendre la portée des variables permet aux développeurs de créer un code robuste et efficace qui répond dynamiquement aux conditions changeantes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!