20181212-python1119作业郭恩赐

小作业7

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

def my_log(name):

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

import  functools

def mylog_in(mylog):
    rootname = 'python'
    rootkey = '123'
    input_name = input('user:')
    input_key = input('password:')
    @functools.wraps(mylog)
    def dec():
        if input_name == rootname and input_key == rootkey:
            mylog(input_name)
        else:
            print('登录失败')
    return dec
    
@mylog_in
def my_log(name):
    print('%s欢迎登陆'%(name))

my_log()

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

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

import  functools
import time
def dec(f):
    @functools.wraps(f)
    def decsumn(num):
        starttime= time.time()
        x = f(num)
        endtime =  time.time()
        usetime= endtime -starttime
        print('共计使用了%f秒'%usetime)
        return x
    return decsumn

@dec
def sumn(n):
    res = n
    for i in range (n):
        res +=i
    return res

q = sumn(100)
print(q)
原文地址:https://www.cnblogs.com/gec258/p/10111491.html