関数呼び出しのフック
デコレータ構文を使った関数呼び出しのフック
# dec.py def hook(func): def wrap(*arg, **kwargs): print "call ", func.func_name, "(%s, %s)" % (arg,kwargs) return func(*arg, **kwargs) return wrap @hook def f(x): return x * 2 @hook def g(x): return x + 1 print g(f(10))
実行結果
$ py dec.py call f ((10,), {}) call g ((20,), {}) 21
デコレータ面白いなー