作业练习20200323

# 原始函数:函数执行的时间用time.sleep(n)模拟
# 装饰器一:加上统计时间的功能
# 装饰器二:加上登录认证的功能:用户的账号密码来源于文件
# 1、登录成功一次,后续的函数都无需再输入用户名和密码
# 装饰器三:加上登录认证的功能:用户的账号密码来源于文件
# 2、登录成功一次,在超时时间内无需重复登录,超过了超时时间,则必须重新登录

import time


def time_count(func):
    def hide(*args, **kwargs):
        star = time.time()
        func(*args, **kwargs)
        end = time.time()
        print('本程序执行耗时{}秒'.format(end - star))

    return hide


def login_check_1(func):
    def hide(*args, **kwargs):
        tag = 1
        while tag:
            login_name = input('输入登录账号:').strip()
            login_pwd = input('输入登录密码:').strip()
            with open(r'02 账号库.txt', mode='rt', encoding='utf-8')as file:
                for check_info in file:
                    check_list = check_info.strip().split(':')
                    if login_name == check_list[0] and login_pwd == check_list[1]:
                        print('===登录成功,后续程序将继续执行===')
                        tag = 0
                        break
                else:
                    print('用户名或密码错误,重新输入')
        func(*args, **kwargs)

    return hide


def login_check_2(func):
    def hide(*args, **kwargs):
        tag = 1
        while tag:
            login_name = input('输入登录账号:').strip()
            login_pwd = input('输入登录密码:').strip()
            with open(r'02 账号库.txt', mode='rt', encoding='utf-8')as file:
                for check_info in file:
                    check_list = check_info.strip().split(':')
                    if login_name == check_list[0] and login_pwd == check_list[1]:
                        print('===登录成功,后续程序将继续执行===')
                        login_star_time = time.time()
                        func(*args, **kwargs)
                        input('模拟操作时间')
                        login_end_time = time.time()
                        do_time = login_end_time - login_star_time
                        if do_time < 6:
                            tag = 0
                        else:
                            print('操作超时,重新登录')
                        break
                else:
                    print('用户名或密码错误,重新输入')

    return hide


def add(a, b):
    time.sleep(3)
    print('原始函数的功能:{}'.format(a + b))

猜你喜欢

转载自www.cnblogs.com/caoyu080202201/p/12554091.html