Python里的装饰器是一个不太容易理解的东西,下面是一些关于Python装饰器的概念:
装饰器用来装饰函数,可以在被装饰的函数调用前做些准备工作,在被装饰的函数调用后做些清理工作,这样的特征使它在AOP(Aspect Oriented Programming面向切面编程)方面被广泛利用。 一般装饰器可以用在下类场景中:
def delay(func):
def wrapper(*args, **kwargs):
time.sleep(1)
ret = func(*args, **kwargs)
print("delay 1 second to call %s" % func.__name__)
return ret
return wrapper
@delay
def add(a, b):
return a + b
if __name__ == "__main__":
add(1, 2)
其中:
凡是被delay装饰过的函数,都会自动被延迟一秒执行