関数型デコレータのサンプルプログラム

『エキスパートPythonプログラミング改訂2版』を読みながら、デコレータを関数として実装するサンプルプログラムを書いてみる。

■プログラム名 mydeco.py

# デコレータ
def kakko(function):
    def wrapped(*args, **kwargs):
        # 呼び出し前の処理
        result = function(*args, **kwargs)
        # 呼出し後の処理
        result = '[' + result + ']'
        return result

    return wrapped

# デコレートされる関数
@kakko
def get_message():
    return 'Hello,Python.'


if __name__ == '__main__':
    msg = get_message()
    print(msg)

■実行結果

$ python mydeco.py
[Hello,Python.]