zoukankan      html  css  js  c++  java
  • Day 12 作业.(完成)

    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 time
    status_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 函数 " %(status_dic["username"],now_time,func.__name__))
    ret = func(*args,**kwargs)
    return ret
    return inner
    @wrapper
    def graph():
    print("绘图功能")
    @wrapper
    def login():
    print("登录功能")
    graph()
    time.sleep(3)
    login()

    运行结果
    萌哥在2018 02 23 20:54:38 时调用了graph 函数
    萌哥在2018 02 23 20:54:41 时调用了login 函数


    5,在编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码。这个作业之上进行升级操作:

         设置两套密码,一套为京东账号密码,一套为淘宝账号密码保存在文件中。

         设置四个函数,分别代表 京东首页,京东超市,淘宝首页,淘宝超市。

         循环打印四个选项:东首页,京东超市,淘宝首页,淘宝超市。

         供用户选择,用户输入选项后,执行该函数,四个函数都加上认证功能,只要登陆成功一次,在选择其他函数,后续都无需输入用户名和密码。

    相关提示:用带参数的装饰器。装饰器内部加入判断,验证不同的账户密码。

  • 相关阅读:
    Postfix常用命令和邮件队列管理(queue)
    window7下面rabbitMQ安装配置过程详解
    RabbitMQ系列之消息确认机制
    全文检索:sphinx elasticsearch xunsearch 比较
    用SQL命令查看Mysql数据库大小
    部署Percona监控和管理--- PMM Server
    什么是MTU?为什么MTU值普遍都是1500?
    Mysql删除数据后,磁盘空间未释放的解决办法
    数据库索引
    visual studio 容器工具首次加载太慢 vsdbgvs2017u5 exists, deleting 的解决方案
  • 原文地址:https://www.cnblogs.com/mengbin0546/p/8422856.html
Copyright © 2011-2022 走看看