Pythonのデコレータは、関数やメソッドに追加的な機能を付け加えるための強力なツールです。具体的には、デコレータは関数を修飾し、その動作を変更できます。
import time
def timer_decorator(func):
def wrapper():
start_time = time.time()
func()
print("Elapsed time:", time.time() - start_time)
return wrapper
上記の例では、timer_decoratorというデコレータを定義しています。このデコレータは、関数の実行時間を計測します。
デコレータは、基本的には関数を引数として受け取り、新しい関数を返す高階関数です。これにより、既存のコードを変更することなく関数の振る舞いを変更できます。
また、Pythonでは @decorator_name のようにアットマークを使った特殊な構文でデコレータを適用することが一般的です。
@timer_decorator
def my_function():
for _ in range(10000):
pass
上記の例では、my_functionという関数に@timer_decoratorというデコレータを適用しています。これにより、my_functionが呼び出されるときに、その実行時間が計測されます。
デコレータは、Pythonでよく使われる手法であり、コードのパワーアップや整理を実行するための強力なツールです。