Python
•
•
By Ryan
Python 裝飾器 (Decorator) 實戰:為函數加上計時與重試機制
優雅地擴充函數功能
Decorator 是 Python 的語法糖,允許在不修改原函數代碼的情況下,動態增加功能。這在維運腳本中非常實用。
應用場景 1:執行時間測量
可以用來監控爬蟲或資料處理函數的效能瓶頸。
應用場景 2:自動重試 (Retry)
針對不穩定的網路請求 (如呼叫外部 API),寫一個 @retry(times=3) 裝飾器。
def retry(times):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(times):
try:
return func(*args, **kwargs)
except Exception:
continue
raise Exception("Failed after retries")
return wrapper
return decorator
這樣只需在函數上方加上 @retry(3),就能大幅提升腳本的強健性 (Robustness)。