『エキスパート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.]