Fermeture:
La fermeture est une manière très pratique d'écrire en python, qui permet aux utilisateurs d'appeler des variables de fonctions extérieures à la fonction dans la fonction, rendant la variable résidente en mémoire.
Fonction fermeture :
L'entrée est une fonction et la sortie est également une fonction.
La façon dont les décorateurs sont écrits est du sucre syntaxique pour les fermetures python.
Appelez les questions de résultat qui sont souvent interrogées dans les entretiens :
# ---encoding:utf-8---
# @Author : CBAiotAigc
# @Email :[email protected]
# @Site :
# @File : 两个装饰器.py
# @Project : PythonUtils
# @Software: PyCharm
def wrapper1(func):
print("set wrapper1")
def inner_wrapper1(*args, **kwargs):
print("进入inner_wrapper1")
ret = func(*args, **kwargs)
print("离开inner_wrapper1")
return ret
return inner_wrapper1
def wrapper2(func):
print("set wrapper2")
def inner_wrapper2(*args, **kwargs):
print("进入inner_wrapper2")
ret = func(*args, **kwargs)
print("离开inner_wrapper2")
return ret
return inner_wrapper2
@wrapper1
@wrapper2
def func():
print("func 函数调用")
if __name__ == '__main__':
func()
Le décorateur améliore la première fois que la fonction décorée est appelée
- Calendrier d'amélioration ? avant le premier appel à
- Nombre d'améliorations ? améliorer une seule fois
Appelez l'analyse logique du code ci-dessus :
func = wrapper2(func)
func = wrapper1(func)
func()