2019年3月10日 装饰器进阶

ser_dic={'username':None,'login':False}#用户字典,反应登入状态,用字典做全局变量

def idf(func):#验证登入信息是否正确
    def wrapper(*args,**kwargs):
        if user_dic['username'] and user_dic['login']:#验证登入状态,如果正确登入,则直接执行
            print("验证通过")
            res = func(*args, **kwargs)
            return res
        else:
            username=input('please input username: '.strip())#.strip指的是移除前后空格或者制表符
            password=input('pleasr input password: ')
            if username=='sxj' and password=='abc':
                user_dic['username']=username#更新用户字典的登入状态
                user_dic['login']=True#更新用户字典的登入状态
                print("验证通过")
                res = func(*args, **kwargs)
                return res
            else:
                print('I am sorry')
    return wrapper

@idf
def index():
    print('welcome to index')

@idf
def home(name):
    print('%s,welcome to home'%name)

@idf
def shopping_car():
    print('this is shopping car,you have %s,%s,%s'%('奶茶','妹妹','sxj'))

home('sxj')
shopping_car()

>>>>

please input username:sxj
pleasr input password: abc
验证通过
sxj,welcome to home
验证通过
this is shopping car,you have 奶茶,妹妹,sxj

猜你喜欢

转载自www.cnblogs.com/python1988/p/10505819.html
今日推荐