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)

浙公网安备 33010602011771号