20181212_HW

作业7

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

def my_log(name):

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

import functools

def log_check( username , passwd ):
    def check( f ):
        @functools.wraps( f ) 
        def wrapper( *args , **kw ):
            global key 
            global user
            if user == username and key == passwd :
                return f( *args , **kw )
            else:
                return -1
        return wrapper
    return check



@log_check('python','123' )
def my_log( name ):
    print( '%s欢迎登陆'% ( name ) ) 

user = input( 'Input username : ' )
key = input( 'Input passwd : ' )
my_log( user )

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

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

import time

def statistics_time( f ):
    def wrapper( *args , **kw ):    
        t0 = time.time()
        r = f()
        t1 = time.time()
        print( t1 - t0 )
        return r
    return wrapper


@statistics_time
def functionDemo():
    s = 0 
    for i in range( 300 ):
        s += i
    return s

functionDemo()
原文地址:https://www.cnblogs.com/TyroneYang/p/10110814.html