Python - デコレータ

デコレータ

関数を実行する前後に特殊な処理を実行したい場合、デコレータ (@) を用いることができます。下記の例では hello() 関数を mydecolater でデコレート (装飾)しています。デコレーション関数では、関数実行前に start、関数実行後に end を出力しています。

def mydecolater(func):        # デコレータを定義する
    def wrapper():
        print("start")        # 前処理を実行する
        func()                # デコレート対象の関数を実行する
        print("end")          # 後処理を実行する
    return wrapper

@mydecolater
def hello():
    print("hello")

hello()                       # start, hello, end
デコレータ

関連記事