一个装饰器的简单应用小例子

# 登陆验证:如果没哟登陆,则提示登陆
message = {
    'name': None,
    'status': False
}

def login(f):
    def inner(*args, **kwargs):
  '''被装饰函数执行之前的操作'''
if message["status"]: ret = f(*args, **kwargs) return ret else: name = input("输入帐户") password = input("输入密码") with open("info.txt", mode="r", encoding="utf-8") as f1: for line in f1: user, pwd = line.split("|") print("-----", user, pwd,type(user),type(pwd)) if name == user.strip() and password == pwd.strip(): message["name"] = name message["status"] = True print("跳转中。。。") ret = f(*args, **kwargs) return ret else: print("登陆失败") return inner @login def articl(): print("访问文章页面") @login def neirong(): print("访问内容也页面") @login def zhuye(): print("访问个人主页页面") zhuye() neirong() articl()

结果显示:

输入帐户xumou
输入密码123
----- xumou 123 <class 'str'> <class 'str'>
跳转中。。。
访问个人主页页面
访问内容也页面
访问文章页面

 

posted @ 2019-07-29 15:28  XuMou  阅读(350)  评论(0编辑  收藏  举报