Le décorateur Python est une fonction utilisée pour étendre les fonctionnalités de la fonction d'origine. Le but est d'ajouter de nouvelles fonctions à la fonction sans changer le nom de la fonction d'origine (ou le nom de la classe). Un décorateur est essentiellement une fermeture, et la fermeture est le cœur d'un décorateur.
Définition
(tutoriel recommandé : tutoriel python)
décorateurs python (décorateurs fonctionnels) est une fonction utilisée pour étendre les fonctionnalités de la fonction d'origine. Le but est d'ajouter de nouvelles fonctions à la fonction sans modifier le nom de la fonction d'origine (ou le nom de la classe).
La particularité de cette fonction est que sa valeur de retour est également une fonction. Cette fonction est une fonction avec la fonction "originale" intégrée
Explication détaillée
En fait, le décorateur C'est une fermeture qui prend une fonction comme paramètre et renvoie une fonction alternative. La fermeture est le cœur du décorateur. Expliquez brièvement les caractéristiques de la fermeture : Une fonction renvoyée par une fonction. .Objet.Lorsque cet objet fonction est exécuté, cela dépend de la valeur de la variable à l'intérieur de la non-fonction. À ce stade, le contenu réel renvoyé par la fonction est le suivant : 1. >2. Paramètres externes que l'objet fonction doit utiliser. Variables et valeurs des variables ;
Ce qui précède est une fermeture. Une fermeture doit être imbriquée dans une fonction et doit renvoyer un objet fonction qui appelle des variables externes. être une fermeture
Exemple :
#encoding=utf-8 import time def now(): print "current time is %s" %time.strftime("%Y-%m-%d %H-%M-%S") res=now res()
Résultat :
Maintenant, si nous voulons ajouter d'autres fonctions au now( ), comme l'impression automatique de certains journaux avant et après l'appel de la fonction, mais nous ne voulons pas modifier la définition originale de now(), donc notre décorateur est utileEssentiellement, le décorateur est un. fonction d'ordre supérieur qui renvoie une fonction, nous devons donc définir un journal qui peut être imprimé. Le décorateur
Après Python 2.4, il est pris en charge d'utiliser l'identifiant @ pour appliquer le décorateur à la fonction You. il suffit d'ajouter @ et le nom du décorateur avant la définition de la fonction
Code :
#encoding=utf-8 import time #定义装饰器 def log(func): def wrapper(*args,**kw): print "call func is %s" %func.__name__ return func(*args,**kw) return wrapper @log def now(): now = time.strftime("%Y-%m-%d %H-%M-%S") print "current time is %s" %now now()
Résultat :
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!