函数添加身份验证后的问题

添加身份验证后,会出现每次都需要输入账户名和密码。所以需要定义一个状态器,每次判断一下是否登录成功。直接跳过输入,减少步骤。。例如:

 1 user_dic = {'user_name':None,"login":False}
 2 def add_func(func):
 3     def wrapper(*args, **kwargs):
 4         if user_dic['user_name'] and user_dic['login']:
 5             res = func(*args, **kwargs)
 6             return res
 7         username = input("亲,请输入你的用户名: ").strip()
 8         passwd = input("请输入密码").strip()
 9         if username == 'sb' and passwd == '123':
10             user_dic['user_name'] = username
11             user_dic['login'] = True
12             res = func(*args, **kwargs)
13             return res
14         else:
15             print("您输入的用户名或者密码错误")
16     return wrapper
17 @add_func
18 def index():
19     print('欢迎来到京东商城')
20 @add_func
21 def home(name):
22     print("%s 欢迎回到主页" % name)
23 @add_func
24 def shopping_car(name):
25     print('%s的购物车里面有[手机、电脑、汽车]'%name)
26 index()
27 home('liyulu')
28 shopping_car('liyulu')
29 输出:
30 亲,请输入你的用户名: sb
31 请输入密码123
32 欢迎来到京东商城
33 liyulu 欢迎回到主页
34 liyulu的购物车里面有[手机、电脑、汽车]

猜你喜欢

转载自www.cnblogs.com/ch2020/p/12377213.html