デコレータの具体例
デコレータの使い方
関数の実行前と実行後にデバッグ目的に関数名をログに出力させるのが目的です。プログラムが使用するすべての関数の、呼び出し時と終了時にログ表示の実行は大変です。そのためデコレータを利用しています。
#log.py import logging logging.basicConfig(level=logging.INFO) def log_deco(f): def wrapper(*args, **kw): logging.info("function [%s] starts.", f.__name__) result = f(*args, **kw) logging.info("function [%s] end. ", f.__name__) return result return wrapper @log_deco def sample_func(): print "hello, python." sample_func()
実行結果
# python log.py INFO:root:function [sample_func] starts. hello, python. INFO:root:function [sample_func] end.