#test 文件存储的信息,注意行末有逗号 取出来的就是一个元组,没有逗号,取出来就是一个字典
{"name":"产品经理","passwrd":123},
{"name":"产品经理1","passwrd":123},
{"name":"产品经理2","passwrd":123},
{"name":"产品经理3","passwrd":123},
{"name":"产品经理4","passwrd":123},
#这里就是用 test 文件存储的用户信息 ,然后输入用户名和密码后, 在读取文件信息比对
usr_dict ={"name":None,"login_stat":False}
def auth_func(func):
def wrapper(*args,**kwargs):
if usr_dict["login_stat"] == False:
name = input("用户名:").strip()
passwrd = input("密码:").strip()
with open("test","r",encoding="utf-8") as f:
for filedict in f: #eval 没有逗号取出来就是一个字典 直接写为: i=eval(filedict)
i = eval(filedict)[0] #eval 取出来的值 居然是一个元组 ,其实不是这样 是我弄错了 我写文件在字典后面加 逗号了,
if i["name"]==name and str(i["passwrd"])==passwrd:
usr_dict["login_stat"]=True
usr_dict["name"]=name
print("登陆成功")
res = func(*args,**kwargs)
print (res)
return res
else:
print("用户名密码有误")
else:
res = func(*args, **kwargs)
print(res)
return res
return wrapper
@auth_func
def jd_index():
return "欢迎来到京东"
@auth_func
def jd_home(name):
return "欢迎回家%s"%name
@auth_func
def jd_shopping_car(name):
return "%s购物车[%s,%s]"%(name,"牛奶","面包")
jd_index()
jd_home("产品经理")
jd_shopping_car("产品经理")