‘decorator’ タグのついている投稿

[メモ] Pythonのデコレータ

2010年5月30日 日曜日

出てくる度に調べる割に、いつまで経っても覚えられなかったデコレータですが、今回こそ仕留める為にメモエントリーです。まずよく見かけるのは関数の時間を計測するという例ですね。僕はこの形だけを何となく覚えては忘れていました。

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import time
 
# デコレータ定義
def time_func(func):
  def decorator(*args):
    start = time.time()    
    ret = func()
    print '%s was executed, it took %s sec' % (func.func_name, time.time() - start)
    return ret
  return decorator
 
# デコレータ適用
@time_func
def test():
  time.sleep(1)
 
def main():
  test()
 
if __name__ == '__main__':
   main()

(続きを読む…)