函数闭包为函数加上认证功能

#模拟认证 但是有问题 因为需要重复输入用户名跟密码 解决在之后随笔汇(模拟session)

def
auth_func(func): def wrapped(*args,**kwargs): user_name = input("请输入用户名").strip() passwd = input("请输入密码").strip() if user_name == "sb" and passwd == "123": #注意这里的用户名跟密码都是字符串 不是数字 一定要加引号 res = func(*args,**kwargs) return res #注意这里return的位置 else: print("用户名或密码错误") return wrapped #注意这里没有括号 不运行wrapped @auth_func def index(): print("欢迎来到京东") @auth_func def home(name): #注意函数要有形参 print("亲爱的%s,欢迎回家" %name) @auth_func def shopping_car(name): print("%s的购物车里有%s,%s" %(name,"tt","娃娃")) index() home("龙大哥") #注意要给参数 shopping_car("龙大哥")

猜你喜欢

转载自www.cnblogs.com/newt/p/9014183.html