- 装饰器是一个函数,它返回一个函数
- 注意functools.wraps的使用
两层嵌套的装饰器
import functools
def log(func):
@functools.wraps
def wrapper(*args,**kw):
print('call %s()'% func.__name__)
return func(*args,**kw)
rerurn wrapper
三层嵌套的装饰器(针对带参数的装饰器)
import functools
def log(text):
def decorator(func):
@functools.wraps
def wrapper(*args,**kw):
print('%s %s():' % (text,func.__name__))
return func(*args,**kw)
return wrapper
return decorator