Introduction détaillée aux décorateurs Python

王林
Libérer: 2020-07-08 13:40:09
original
2778 Les gens l'ont consulté

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.

Introduction détaillée aux décorateurs Python

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()
Copier après la connexion

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 utile

Introduction détaillée aux décorateurs PythonEssentiellement, 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()
Copier après la connexion

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!

É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