验证登陆来练习装饰器

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

#想不不修改调用方式的情况下加上验证的功能
def auth_func(func):
    def wrapper(*args,**kwargs):
        if user_dict['username'] and user_dict['login']:
            res =func(*args,**kwargs)
            return res
        else:#这里else可以不需要
            username = input("请输入用户名:").strip()
            passwd = input("请输入密码:").strip()
            if username =="sb" and passwd =='123':
                res = func(*args,**kwargs)
                user_dict["username"] = username
                user_dict["login"] = True
                #return res
            else:
                print("用户名或密码错误")
    return wrapper

@auth_func
def index():
    print("欢迎来到京东首页")
@auth_func
def home(name):
    print("%s欢迎回家"%name)
@auth_func
def shopping_car():
    print("您的购物车空空如也")
@auth_func
def order():
    print("还没有下任何订单")

index()
#这里实现了验证功能,但是要实现其他功能时,还需要再次验证,用全局变量来模拟
home("张铭")

猜你喜欢

转载自blog.csdn.net/ooxxshaso/article/details/79797316
今日推荐