Python 基础习题 1212

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

def my_log(name):

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

import functools 
def decorator(f):
    @functools.wraps(f)
    def wrapper(*args,**kw):
        passwd = int(input('密码:'))
        if name =='python' and passwd==123:
            return f(*args,**kw)
        else:
            print('用户名或密码不对')
    return wrapper


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


name = input('用户名:')  
my_log(name)

  

 

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

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

import functools
import time 
def decorator(f):
    @functools.wraps(f)
    def wrapper(*args,**kw):
        start_time = time.time()
        f(*args,**kw)
        end_time = time.time()
        user_time = end_time - start_time
        print('程序运行的时间是%f' %user_time)
    return wrapper


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


name = input('用户名:')  
my_log(name)

  

posted @ 2018-12-12 20:35  米线Max  阅读(201)  评论(0)    收藏  举报