装饰器函数的使用

1、现有以下函数,利用装饰器为此函数加上认证功能,也就是只有用
户名为'python', 密码为'123'才能调用此函数,否则不允许

def my_log(name):
  print('%s欢迎登陆'%(name))

def decorater(f):
    def log():
        name = input("请输入用户名:")
        password = int(input("请输入用户密码:"))
        if name == "python" and password == 123:
            f(name)
        else:
            print("用户名和密码不匹配")         
    return log

@decorater
def my_log(name):
    print("%s欢迎登陆"%(name))
my_log()
2、利用装饰器为函数加上统计执行时间的功能。提示 time模块中的time()函数可以获取当前时间

import time

def decorator(f):
    def wrapper():
        t = time.time()
        f()
        t1 = time.time()
        print(t1-t)
    return wrapper

@decorator
def tm():
    print("程序开始与结束相差时间为:",end=" ")
tm()
原文地址:https://www.cnblogs.com/Qingxiaoyu/p/10111569.html