D20-05 函数闭包 为函数加认证 (再看几遍)

user_dic={'username':None,'login':False}

def auth_func(func):  #高阶函数传的是函数名
    def wrapper(*args,**kwargs):
        if user_dic['username'] and user_dic['login']:#先判断有没有用户登录,登录状态是不是True
            res = func(*args,**kwargs)
            return res
        username=input('用户名:')
        passwd=input('密码')
        if username =='sb' and passwd =='123': #已经输入账号密码,所以需要记录。
            user_dic['username']=username
            user_dic['login']=True
            res = func(*args,**kwargs)
            return res
        else:
            print('用户名密码输入错误')
    return wrapper()
@auth_func
def  index():
    print('欢迎来到京东主页')
@auth_func
def home():
    print('欢迎回家')
@auth_func
def shopping_car():
    print('购物车里有【%s,%s】'%('茶','妹妹'))

  

猜你喜欢

转载自www.cnblogs.com/liupingtao/p/9816517.html