添加身份验证后,会出现每次都需要输入账户名和密码。所以需要定义一个状态器,每次判断一下是否登录成功。直接跳过输入,减少步骤。。例如:
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的购物车里面有[手机、电脑、汽车]