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()