修饰器:python装饰器就是用于拓展原来函数功能的一种函数(引入日志,函数执行时间统计,执行函数前的预处理,执行函数后的清理功能,权限校验,缓存等),这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能。本质是一个闭包。
#带有不定参数的通用装饰器
def deco(func):
def wrapper(*args, **kwargs):
ret = func(*args, **kwargs)
return ret
return wrapper
@deco
def f(a,b,c):
……
类装饰器:
class Test():
def __init__(self,func):
self._func = func
def __call__(self,*args, **kwargs):
print("装饰器的功能")
self._func(*args, **kwargs)
@Test#生成一个Test的对象,然后调用__init__方法,并且把下面装饰器中的函数传进去
def test(*args, **kwargs):
print("==test==")
test()