python作业6

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

def my_log(name):

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

#7.6
import functools


def decorator(f):
    @functools.wraps(f) 
    def wrapper(*args, **kw):
        s = input('请输入用户名:')
        if s != 'python':
            print('输入错误')
            return -1
        s = str(input('请输入密码:'))
        if s != '123':
            print('输入错误')
            return -1
        return f(*args, **kw)
    return wrapper


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


my_log('ty')

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

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

#7.7
import time
import functools

def decorator(f):
    @functools.wraps(f)
    def wrapper(*args, **kw):
        global t1
        t1 = time.time()
        f(*args, **kw)
        t2 = time.time()
        t = t2 - t1
        print('函数运行时间为%ss'% t)           
        return 0
    return wrapper

@decorator
def millonman():
    i = 0
    for i in range(10000000):
        i += 1

millonman()

猜你喜欢

转载自www.cnblogs.com/tangyun966/p/10110610.html