Pythonのデコレータ(@記号)とは?初心者にもわかりやすく解説!
2025-04-13

Pythonには、「デコレータ」という便利な機能があります。これは、関数やクラスに対して簡単に処理を追加するための仕組みです。
デコレータとは何か?
Pythonでは、関数の前に @
をつけて関数名を書くことで、別の関数を通して動作を変えることができます。
デコレータの基本構文
def デコレータ関数(func):
def wrapper():
# 追加したい処理
func()
# 終了後の処理
return wrapper
@デコレータ関数
def 対象の関数():
print("元の関数の処理")
このように @デコレータ関数
を使うことで、元の関数に別の処理を追加できます。
実際の例:簡単なデコレータ
def my_decorator(func):
def wrapper():
print("処理の前")
func()
print("処理の後")
return wrapper
@my_decorator
def say_hello():
print("こんにちは!")
say_hello()
実行結果:
処理の前
こんにちは!
処理の後
デコレータ名は自由につけられる
@my_decorator
の部分は、好きな名前を使うことができます。たとえば、@cool_wrapper
のように変更しても問題ありません。
よく使われる用途
- ログを記録する
- 実行時間を計測する
- 権限のチェック(ログイン済みかなど)
- キャッシュ処理(例:
@lru_cache
)
まとめ
Pythonのデコレータは、コードをすっきりと保ちながら関数の機能を拡張する、とても強力な機能です。初心者でもシンプルな例から始めればすぐに理解できます。