12.12

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

def my_log(name):

  print('%s欢迎登陆'%(name))

import functools
def decorator(f):
    @functools.wraps(f)
    def wrapper(*args,**kw):
        n=input('请输入用户名:')
        if n=='python':
            l=int(input('请输入密码:'))
            if l==123:
                return f(*args,**kw)
                return wrapper        
            else:
                return print('你输入的密码有误')
        else:
            return print('你输入的用户名有误')
    return wrapper                

@decorator
def my_log(name):
    print('%s欢迎光临' %name)
my_log('王涛')

7.利用装饰器为函数加上统计执行时间的功能。

  提示 time模块中的time()函数可以获取当前时间

import time
import functools
def decorator(f):
    @functools.wraps(f)
    def wrapper(*arg,**kw):
        n=time.time()
        i=f(*arg,**kw)
        n2=time.time()
        n3=n2-n
        return print('计算平方的时间是{},结果是{}' . format(n3,i))
    return wrapper





@decorator
def nbb(x):
    return x**9 
nbb(100)

 

posted @ 2018-12-12 20:41  加勒比海米  阅读(89)  评论(0编辑  收藏  举报