1,将装饰器的所有知识点总结完成,将这几天的作业再整理一遍,还是不会的,就抄代码,一遍不行就三遍,直到所有知识点,所有题都整明白。
2,有时间就画流程图,梳理知识点。
3,上面两项完成的写以下作业。
4,给每个函数写一个记录日志的功能,
功能要求:每一次调用函数之前,要将函数名称,时间节点记录到log的日志中。
所需模块:
import time struct_time = time.localtime() print(time.strftime("%Y-%m-%d %H:%M:%S",struct_time))
# 所需要的模块# import time# struct_time = time.localtime()# print(time.strftime("%Y-%m-%d %H:%M:%S",struct_time))import timestatus_dic ={ "username":None, "status":False,}def wrapper(func): def inner(*args,**kwargs): struct_time= time.localtime() now_time = time.strftime("%Y - %m -%d %H:%M:%S",struct_time) status_dic["username"]="萌哥" status_dic["status"]=True if status_dic["status"]: with open("log","a",encoding="utf-8")as f1: f1.write("%s 在%s时,调用了%s 函数\n" %(status_dic["username"],now_time,func.__name__)) ret = func(*args,**kwargs) return ret return inner@wrapperdef graph(): print("绘图功能")@wrapperdef login(): print("登录功能")graph()time.sleep(3)login()运行结果
萌哥在2018 02 23 20:54:38 时调用了graph 函数萌哥在2018 02 23 20:54:41 时调用了login 函数
5,在编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码。这个作业之上进行升级操作:
设置两套密码,一套为京东账号密码,一套为淘宝账号密码保存在文件中。
设置四个函数,分别代表 京东首页,京东超市,淘宝首页,淘宝超市。
循环打印四个选项:东首页,京东超市,淘宝首页,淘宝超市。
供用户选择,用户输入选项后,执行该函数,四个函数都加上认证功能,只要登陆成功一次,在选择其他函数,后续都无需输入用户名和密码。
相关提示:用带参数的装饰器。装饰器内部加入判断,验证不同的账户密码。
来源:https://www.cnblogs.com/mengbin0546/p/8422856.html