验证登陆来练习装饰器

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("张铭")
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值