3.23-作业

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


def timeer(x, y):
    res = x + y
    time.sleep(2)
    print("timeer>>>%s:" % res)

timeer(1,2)
# 二:编写装饰器,为函数加上统计时间的功能
import time
def out(func):
    def index(*args,**kwargs):
        time.sleep(0.3)
        start = time.time()
        res = func(*args,**kwargs)
        stop = time.time()
        print(stop - start)
        return res
    return index
index = outer(index)
index(1,2)
# 三:编写装饰器,为函数加上认证的功能
import time
def out(func):
    def wapper(*args,**kwargs):
        time.sleep(0.3)
        start = time.time()
        res = func(*args,**kwargs)
        stop = time.time()
        print(stop - start)
        return res
    return wapper

@out
def index(x,y):
    time.sleep(0.3)
    print("index>>>:%s %s"%(x,y))

index(1,2)
四:编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),
要求登录成功一次,后续的函数都无需再输入用户名和密码
注意:从文件中读出字符串形式的字典,可以用eval('{"name":"egon","password":"123"}')转成字典格式
def auth(func):
    def wapper(*args, **kwargs):
        name = input("name>>>:").strip()
        password = input("password>>>:").strip()
        # password = int(password)
        with open("bb.txt", "rt", encoding="utf-8") as file:
            for line in file:
                user, pwd = line.strip().split(":")
                if name == user and password == pwd:
                    start = time.time()
                    res = func(*args, **kwargs)
                    stop = time.time()
                    print(stop - start)
                    return res
                else:
                    print("error")

    return wapper


@auth
def index():
    time.sleep(5)
    print("login successful")


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

def login():
    name = input("name>>>:").strip()
    password = input("password>>>:").strip()
    with open("bb.txt", "rt", encoding="utf-8") as file:
        for line in file:
            user, pwd = line.strip().split(":")
            if name == user and password == pwd:
                print("login successful")
            else:
                print("error")
def wait(func):
    wait = 5
    def index(*args,**kwargs):
        start = time.time()
        res = func(*args,**kwargs)
        stop = time.time()
        result = stop - start
        if result >= wait:
            login()
        else:
            return res
    return index

@wait
def use():
    time.sleep(6)
    print("successful")

use()

猜你喜欢

转载自www.cnblogs.com/zhenghuiwen/p/12555125.html
今日推荐