010python路--装饰器应用之页面登陆

#需求:京东购物前必需要登陆,而再次点击购物时,函数

#           在新的页面(函数)中,不须要再次输入信息。
#           怎么作到?
ui

#伪代码描述问题所在
假设在文件中,user-zhaowei;passwd-123

def login(): usename = input("usename:") password = input("password:") if user == usename and password==passwd: print("welcome") @login def home(): print("...") @login def home2(): print("...") @login def home3(): print("...")

# 如今在每一个功能模块,都要调用信息登陆函数,
# 未免太麻烦,怎样作就简单了?
# 只要登陆一次,第二次检测是否登陆便可。
# 或者说,每次先检验是否登陆。spa

#建立一个状态标记,标记登陆状态
login_status = False def login(): if not login_status: #进行登陆
        login_status = True else: #pass

具体实现代码code

logstate = False def loger(ways): def log(function): def inner(): global logstate # global ways
            if logstate is False: username = input("输入用户姓名:") password = input("输入用户密码:") # 在文件中找信息:
                flag = False  # 判断是否找到用户信息的标记
                # 根据参数,查找不一样文件
                if ways == 'weixin': open_file = '1.txt'
                elif ways == 'jindong': open_file = '2.txt' with open(open_file, 'r', encoding="utf-8") as file_JD: for i in file_JD: # 取出每一行数据,将数据转化到字典中
                        a = i.split('-') if a[0] == username and a[1] == password: flag = True break
                if flag is True: function() logstate = True else: function() return inner return log # 各个功能函数
@loger("weixin") def home(): print("you are in home") @loger("jindong") def finance(): print("you are in finance") @loger("weixin") def book(): print("you are in book") # 1展现现有的栏目
print('''1.home 2.finance 3.book ''') # 2while中:用户选择服务,进入服务
while True: number = input("输入您所需的服务:") if number == '1': # 调用home函数
 home() if number == '2': # 调用home函数
 finance() if number == '3': # 调用home函数
 book() if number == ':wq': exit("now you are quit")
相关文章
相关标签/搜索