一:编写3个函数,每个函数执行的时间是不一样的,
提示:可以使用time.sleep(2),让程序sleep 2s或更多,
二:编写装饰器,为每个函数加上统计运行时间的功能
提示:在函数开始执行时加上start=time.time()就可纪录当前执行的时间戳,函数执行结束后在time.time() - start就可以拿到执行所用时间
import time
def sum_time(fun):
def inner():
start = time.time()
fun()
print(time.time()-start)
return inner
@sum_time
def fun1():
time.sleep(1)
@sum_time
def fun2():
time.sleep(1.5)
@sum_time
def fun3():
time.sleep(2)
fun1()
fun2()
fun3()
三:编写装饰器,为函数加上认证的功能,即要求认证成功后才能执行函数
四:编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码
提示:从文件中读出字符串形式的字典,可以用eval('{"name":"egon","password":"123"}')转成字典格式
import time
status =False
def login(fun):
def inner():
global status
if status ==False:
with open("装饰器.txt","rb")as fil:
dic =eval(fil.read())
while True:
username =input("name:")
password =input("password:")
if dic["name"] == usernameand dic["password"] == password:
status =True
break
else:
print("密码输入错误")
fun()
else:
fun()
return inner
@login
def fun1():
time.sleep(1)
print("程序1执行完毕")
@login
def fun2():
time.sleep(1.5)
print("程序2执行完毕")
@login
def fun3():
time.sleep(2)
print("程序3执行完毕")
fun1()
fun2()
fun3()