Python装饰器实现带参数和不带参数

 1 def log(text=None):
 2 
 3     if isinstance(text, str):
 4         def decorator(func):
 5             @functools.wraps(func)
 6             def wrapper(*args, **kw):
 7                 print('%s %s():' % (text, func.__name__))
 8                 return func(*args, **kw)
 9             return wrapper
10         return decorator
11 
12     else:
13         @functools.wraps(text)
14         def wrapper(*args, **kw):
15             print('call %s():' % text.__name__)
16             return text(*args, **kw)
17         return wrapper

猜你喜欢

转载自www.cnblogs.com/alinainai/p/12050445.html