Maison >développement back-end >Tutoriel Python >En savoir plus sur les décorateurs en python

En savoir plus sur les décorateurs en python

黄舟
黄舟original
2017-07-27 16:07:301433parcourir

Définition : Il s'agit essentiellement d'une fonction, (décorateur d'autres fonctions) consiste à ajouter des fonctions supplémentaires à d'autres fonctions

Principe : 1. Le code source de la fonction décorée ne peut pas être modifié

2. La méthode d'appel de la fonction décorée ne peut pas être modifiée

import time
def timer(hello):
    def func(*args,**kwargs):    #函数传参,不限个数。
        start = time.time()
        hello(*args,**kwargs)    #函数传参,不限个数。
        end = time.time()
        print("运行时间:%s"%(end - start))
    return func
@timer
def hello():
    time.sleep(2)
    print("nihao")
hello()

Remarque : Le décorateur doit être écrit au-dessus de la fonction décorée.

Petite expérience : Vérification du mot de passe

import time
user = {                           #存储用户名和密码
    "luozeng":'123',
    "xuemanfei":'456',
    "xutian":'789'
}

def yanzheng(hello):
    def func(*args,**kwargs):
        start = time.time()
        username = input("请输入用户:").strip()     #用户输入
        password = input("请输入密码:").strip()
        if username in user and password == user[username]:        #用户名和密码验证
            print("登陆成功")
            hello(*args,**kwargs)
        else:
            exit("用户名或密码错误!")
        end = time.time()
        print("运行时间:%s"%(end - start))
    return func
@yanzheng
def hello():
    print("你好!")
hello()

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!

Déclaration:
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