本文罗列一些装饰器的多种用法
普通传参
def decorated(*args):
def log_time(fn):
# @wraps(fn)
def inner():
try:
fn()
except Exception as e:
print(args[0], e)
return inner
return log_time
带参数的类装饰器
class decorated(object):
def __init__(self, name):
self.name = name
def __call__(self, func):
def wrapper(*args, **kwargs):
try:
func(*args, **kwargs)
except Exception as e:
return wrapper