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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章