【Python】デコレータで関数に追加機能をサクッと実装

デコレータとは?

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()

まとめ

  • デコレータは 関数に簡単に機能を追加できる便利な仕組み

  • 実務でも「ログ出力」や「処理時間の計測」などに大活躍

コメント

タイトルとURLをコピーしました