修饰器
在类里面写好的代码,如果想进行修改九尾违背编程的定义,python所以需要定义一个闭包,通过@的方法进行调用即可
修饰器写法
def xx(aa):
def demo():
print(‘aaaaaaaaa’)
aa()
print(‘........’)
return demo
@xx
def num():相当于(num=xx(demo)) aa()=num()
print(‘,,,,,,,,,,’)
输出结果为
aaaaaaa
..........
,,,,,,,,
装饰器(decorator)功能
1.引入日志
2.函数执行时间统计
3.执行函数前预备处理
4.执行函数后清理功能
5.权限校验等场景
6.缓存
修饰器里面有不定长参数
def xx(aa):
def demo(*args,**kwargs):
print(‘aaaaaaaaa’)
return aa(*args,**kwargs)
print(‘........’)
return demo
def num(*args,**kwargs):
return a+b
这里需要给类参数,可以用*args,**kwargs赋值
修饰器中的return
在修饰器中是不返回值的,所以需要加入return来返回的得到的值,否则直接打印的话就是空
在@的函数里也需要添加返回值,然后在逻辑函数里面在添加一个return即可
添加的知识点
__call__这个命令是直接就可以调用对象函数,后面可以加参数
l��cx|�