在inner()函数中: # 结合装饰器起飞版来看
1.inner()函数中,在被装饰函数之前添加新功能(执行) 如 用户登录
2.inner()函数中,在被装饰函数之后添加新功能(执行) 如 关闭浏览器,断开数据库连接
3.被装饰函数的前后都添加新功能(执行) 如 用于统计被装饰函数的花费时间
4.inner()函数中,未添加任何新的功能,直接引用原函数,就相当于空装饰器,
调用被空装器装饰的函数就是调用原函数自己 如:登录装饰器,避免重复登录 (例题待更新)
例题:用户登录装饰器 执行使用其它功能前必须先登录
def login(func): # 2、启动购物程序前,必须要先登录 def login 读文件 做对比 装饰器 def inner(): if not islogin: uname = input('请输入登录名:').strip() pword = input('请输入密码:').strip() with open('a.txt','r',encoding='utf-8') as f2: for line in f2: #这里存入json 文件比较好判断 line = line.strip(' ') # line = ['seen','123456'] line = line.split('|') if uname == line[0] and pword == line[1]: print('登录成功') return func() #结束当前函数体 else: print('你输入的用户名或密码不正确') else: func() #如果登录成功则执行返回空装饰器,被装饰的函数执行函数本身 return inner