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