装饰器又称语法糖,以下代码是装饰器没有简写之前:
# __*__ coding: utf-8 __*__ __author__ = "David.z" user_status = False def login(func): def inner():#嵌套函数 _username = "alex" # 假装这个DB里存的用户信息 _password = "abc123" # 假装这是DB里存的用户密码 global user_status if user_status == False: username = input("user:").strip() password = input("password:").strip() if username == _username and password == _password: print("welcome login...") user_status = True else: print("wrong username or password!") else: print("用户已登录,验证通过。。。") if user_status: func() return inner def home(): print("首页".center(15,"*")) def america(): print("欧美专区".center(15, "*")) def japan(): print("日韩专区".center(15,"*")) def henan(): print("河南专区".center(15,"*")) henan = login(henan) #inner print(henan) #打印出来看看是不是内存地址 henan() #加上()执行函数
以下代码是简写之后:
唯一区别就是在装饰的时候用@login
# __*__ coding: utf-8 __*__ __author__ = "David.z" user_status = False def login(func): def inner():#嵌套函数 _username = "alex" # 假装这个DB里存的用户信息 _password = "abc123" # 假装这是DB里存的用户密码 global user_status if user_status == False: username = input("user:").strip() password = input("password:").strip() if username == _username and password == _password: print("welcome login...") user_status = True else: print("wrong username or password!") else: print("用户已登录,验证通过。。。") if user_status: func() return inner def home(): print("首页".center(15,"*")) def america(): print("欧美专区".center(15, "*")) def japan(): print("日韩专区".center(15,"*")) @login def henan(): print("河南专区".center(15,"*")) # henan = login(henan) #inner # # print(henan) #打印出来看看是不是内存地址 henan() #加上()执行函数