zoukankan      html  css  js  c++  java
  • Python学习————作业

    一:编写函数,(函数执行的时间用time.sleep(n)模拟)

    import time
    
    
    def index(x, y):
        start = time.time()
        time.sleep(3)
        print(f'index:{x, y}')
        stop = time.time()
        print(stop - start)
    

    二:编写装饰器,为函数加上统计时间的功能

    import time
    
    def timmer(func):
        def timmer_start(*args, **kwargs):
            start = time.time()
            func(*args, **kwargs)
            print('开始时间:', start)
            time.sleep(4)
            stop = time.time()
            print('结束时间:', stop)
            print('时间间隔:', stop - start)
        return timmer_start
    
    @timmer
    def timemer_sleep(*args, **kwargs):
        time.sleep(3)
        print()
    timemer_sleep()
    

    三:编写装饰器,为函数加上认证的功能

    import time
    
    
    def login(func):
        def wrapper():
            name = input('用户名: ').strip()
            upass = input('密码').strip()
            if name == 'yan' and upass == '123':
                res = func()
                print('登陆成功')
                return res
            else:
                print('账号或密码不正确')
    
    ​    return wrapper
    
    
    def timmer(func):
        def wrapper():
            start = time.time()
            func()
            stop = time.time()
            print(stop - start)
    
    ​    return wrapper
    
    
    
    @login
    @timmer
    def index():
        time.sleep(3)
        print('欢迎登录')
    
    
    index()
    

    四:编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码

    注意:从文件中读出字符串形式的字典,可以用eval('{"name":"egon","password":"123"}')转成字典格式

    
    

    五:编写装饰器,为多个函数加上认证功能,要求登录成功一次,在超时时间内无需重复登录,超过了超时时间,则必须重新登录

    
    

    六:选做题

    思考题(选做),叠加多个装饰器,加载顺序与运行顺序,可以将上述实现的装饰器叠加起来自己验证一下

    @deco1 # index=deco1(deco2.wrapper的内存地址)

    @deco2 # deco2.wrapper的内存地址=deco2(deco3.wrapper的内存地址)

    @deco3 # deco3.wrapper的内存地址=deco3(index)

    def index():

    pass

    
    
  • 相关阅读:
    微信:JSSDK开发
    JSSDK图像接口多张图片上传下载并将图片流写入本地
    微信JSSDK上传多张图片
    laravel自定义公共函数的引入
    php把数据转换为json格式
    laravel控制器方法中,用函数作为变量进行传递时的处理方法
    ckeditor富文本编辑器的基本配置设置:
    laravel处理菜单保持的方法:
    laravel基于Bootstrap的成功和失败的提示信息和验证提示信息
    laravel Eloquent 查询数据库判断获取的内容是否为空
  • 原文地址:https://www.cnblogs.com/x945669/p/12556106.html
Copyright © 2011-2022 走看看