デコレータとは?
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()
まとめ
-
デコレータは 関数に簡単に機能を追加できる便利な仕組み
-
実務でも「ログ出力」や「処理時間の計測」などに大活躍



コメント