一个简单的登录

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

def auth_func(func):
    def wrapper(*args,**kwargs):
        if user_dic['username'] and user_dic['login']:    #判断用户是否有登录(有用户名且已经登录的情况下直接跳过验证)
            res=func(*args,**kwargs)
            return res
        username=input('请输入你的用户名:').strip()
        password=input('请输入你的密码:').strip()
        if username=='xiaoma' and password=='123456':
            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(name):
    print('欢迎来到个人中心!')

@auth_func
def shopping_car(name):
    print('%s的购物车里有[%s,%s,%s]' %(name,'日用品','化妆品','厨卫'))


index()
home('小马')
shopping_car('小马')
user_list=[
    {'name':'小张','password':'123'},
    {'name':'小黄','password':'123'},
    {'name':'小李','password':'123'},
    {'name':'小周','password':'123'},
]

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

def auth_func(func):
    def wrapper(*args,**kwargs):
        if current_dic['username'] and current_dic['login']:    #判断用户是否有登录(有用户名且已经登录的情况下直接跳过验证)
            res=func(*args,**kwargs)
            return res
        username=input('请输入你的用户名:').strip()
        password=input('请输入你的密码:').strip()
        for user_dic in user_list:
            if username==user_dic['name'] and password==user_dic['password']:
                current_dic['name']=username
                current_dic['login']=True
                res=func(*args,**kwargs)
                return res
        else:
            print('用户名或密码错误!')

    return wrapper

@auth_func
def index():
    print('欢迎来到华夏家博会首页,祝你购物愉快!')
    
@auth_func
def home(name):
    print('欢迎来到个人中心%s!' %name)
    
@auth_func
def shopping_car(name):
    print('%s的购物车里有[%s,%s,%s]' %(name,'日用品','化妆品','厨卫'))

print('before-->',current_dic)
index()
print('after--->',current_dic)
home('小张')
shopping_car('小张')
原文地址:https://www.cnblogs.com/majunBK/p/10892586.html