デコレータとは?
Pythonの「デコレータ」は、関数に新しい機能を後付けできる仕組みです。@デコレータ名
を関数の上に書くだけで、関数の動きを拡張できます。
基本的な書き方
def my_decorator(func): def wrapper(*args, **kwargs): print("前処理を実行") result = func(*args, **kwargs) print("後処理を実行") return result return wrapper @my_decorator def hello(): print("こんにちは!") hello()
実務で役立つ例① ログ出力デコレータ
def log_decorator(func): def wrapper(*args, **kwargs): print(f"関数 {func.__name__} を実行します") return func(*args, **kwargs) return wrapper @log_decorator def add(a, b): return a + b print(add(3, 5))
実務で役立つ例② 実行時間を計測するデコレータ
import time def timer_decorator(func): def wrapper(*args, **kwargs): start = time.time() result = func(*args, **kwargs) end = time.time() print(f"{func.__name__} の実行時間: {end - start:.4f}秒") return result return wrapper @timer_decorator def slow_function(): time.sleep(2) slow_function()
まとめ
-
デコレータは 関数に簡単に機能を追加できる便利な仕組み
-
実務でも「ログ出力」や「処理時間の計測」などに大活躍
コメント