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

2025-04-13
python3

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 のように変更しても問題ありません。

よく使われる用途

まとめ

Pythonのデコレータは、コードをすっきりと保ちながら関数の機能を拡張する、とても強力な機能です。初心者でもシンプルな例から始めればすぐに理解できます。

pygameの機能とインストール方法

PythonでTOTP・HOTPを実装する方法|ワンタイムパスワード完全ガイド