Maison > développement back-end > Tutoriel Python > Que sont les fermetures Python ?

Que sont les fermetures Python ?

小老鼠
Libérer: 2023-10-30 16:53:30
original
2337 Les gens l'ont consulté

Les fermetures Python comprennent principalement les fermetures de fonction et les fermetures de décorateur. Introduction détaillée : 1. La fermeture de fonction fait référence au retour d'une autre fonction à l'intérieur d'une fonction, et la fonction renvoyée peut accéder à ses variables internes. Une telle fonction renvoyée est une fermeture de fonction.Les fermetures de fonctions peuvent être utilisées à plusieurs reprises dans le programme, elles peuvent donc être utilisées pour implémenter une encapsulation fonctionnelle;2. La fermeture du décorateur signifie que lors de l'utilisation d'un décorateur, la fonction décorée n'est pas appelée. directement, mais est enveloppé dans une fonction et renvoie une nouvelle fonction. Cette nouvelle fonction est une fermeture décorative et ainsi de suite.

Que sont les fermetures Python ?

Le système d'exploitation de ce tutoriel : système Windows, python version 3.11.4, ordinateur Dell G3.

Les fermetures en Python comprennent principalement deux types : les fermetures de fonction et les fermetures de décorateur.

Fermeture de fonction : la fermeture de fonction signifie renvoyer une autre fonction à l'intérieur d'une fonction, et la fonction renvoyée peut accéder à ses variables internes. Une telle fonction renvoyée est une fermeture de fonction. Les fermetures de fonctions peuvent être utilisées à plusieurs reprises dans le programme, elles peuvent donc être utilisées pour implémenter une encapsulation fonctionnelle.

Voici un exemple simple :

def outer():  
    x = 10  
    def inner():  
        print(x)  
    return inner  
  
f = outer()  # 创建函数闭包  
f()  # 调用函数闭包
Copier après la connexion

Dans ce code, la fonction externe renvoie une fermeture de la fonction interne. Nous pouvons appeler f() à plusieurs reprises pour accéder à la variable x dans la fermeture.

Fermeture du décorateur : la fermeture du décorateur signifie que lors de l'utilisation d'un décorateur, la fonction décorée n'est pas appelée directement, mais est enveloppée dans une fonction et renvoie une nouvelle fonction. Cette nouvelle fonction est une fermeture décorative. Les fermetures de décorateur sont souvent utilisées pour mettre en œuvre l’amélioration des fonctionnalités, la journalisation et d’autres fonctions.

Voici un exemple simple :

def my_decorator(func):  
    def wrapper():  
        print("Before the function is called.")  
        func()  # 调用被装饰的函数  
        print("After the function is called.")  
    return wrapper  
  
@my_decorator  
def say_hello():  
    print("Hello!")  
  
say_hello()  # 调用装饰后的函数
Copier après la connexion

Dans ce code, my_decorator est un décorateur qui encapsule la fonction say_hello et renvoie un nouveau wrapper de fonction. Lorsque nous appelons say_hello(), nous appelons en fait le wrapper de fermeture du décorateur().

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal