Petite connaissance,Grand défi!Cet article participe“Les programmeurs ont besoin de peu de connaissances”Activités créatives.
Bonjour tout le monde,Je suisUne semaine de bol,Celui qui ne veut pas être bu(Volume interne)Avant.Si l'article écrit a la chance d'avoir votre faveur,Quelle chance~
Le concept de fermeture proposé dans la fonction,En termes simples, une variable définie en dehors d'une fonction est référencée dans une définition de fonction,Et cette fonction peut être exécutée en dehors de son environnement de définition.Une telle fonction s'appelle une fermeture.En fait, les fermetures peuvent être considérées comme un concept de fonction plus large.Parce qu'il n'est plus une fonction définie traditionnellement.
Le concept de fermeture ne se limite pas àPythonExiste dans,Dans presque tous les langages de programmation.
Conditions de fermeture:
Le format est le suivant:
def Fonctions externes():
...
def Fonctions internes():
...
return Fonctions internes
Copier le Code
Exemple de code
def func():
a = 100
def inner_func():
b = 200
print(a, b)
return inner_func
x = func()
print(x) # <function func.<locals>.inner_func at 0x0000021704CD9620>
x() # 100 200
# Cela permet d'appeler directement inner_funcFonctions,Sireturn Il n'y a pas de sortie sans retour d'une fonction interne
Copier le Code
L'utilisation de fermetures permet également de compléter l'effet du compteur
def generate_count():
container = [0]
def add_one():
container[0] += 1
print(f"C'est le numéro.{container[0]}Appels secondaires")
return add_one
count = generate_count()
count() # C'est le numéro.1Appels secondaires
count() # C'est le numéro.2Appels secondaires
count() # C'est le numéro.3Appels secondaires
Copier le Code
FerméInconvénientsComme suit:
FerméActionComme suit: