立即学习:https://edu.csdn.net/course/play/24459/296349?utm_source=blogtoedu
装饰器终极版
account = { "is_authenticated":False, "username":"alex", "password":"abc123" } def login(func): def inner(*args,**kwargs): if account["is_authenticated"] is False: username = input("user:") password = input("password") if username == account["username"] and password == account["password"]: print("welcome login") account["is_authenticated"] = True func(*args,**kwargs) else: print("wrong username or password") else: print("already login") func(*args,**kwargs) return inner def home(): print("首页") @login def america(): #login() print("欧美") def japan(): print("日韩") @login def henan(vip_level): if vip_level > 3: print("解锁本专区所有视频") else: print("河南vip") home() america() henan(4)
练习:
account = { "is_authenticated":False, "username":"alex", "password":"abc123", "vip_level":4 } def login(func): def inner(*args,**kwargs): if account["is_authenticated"] is False: username = input("user:") password = input("password") if username == account["username"] and password == account["password"]: print("welcome login") account["is_authenticated"] = True func(*args,**kwargs) else: print("wrong username or password") else: print("already login") func(*args,**kwargs) return inner def level(func): def inner(): if account["vip_level"] > 3: print("解锁本专区所有视频") else: func() return inner def home(): print("首页") @login def america(): #login() print("欧美") def japan(): print("日韩") @login @level def henan(): print("河南vip") home() america() henan()