Open trsqxyz opened 10 years ago
デコレートされたじゃなくてラップされたっぽい
def decorator(func): # ラップした関数が渡される
def inner(arg): # ラップした関数として振る舞う 引数をラップした関数と一致させる
print "decorator!" * arg
func(arg) # ラップした関数の処理が実行される
return inner # デコレータに戻す
@decorator
def spam(arg):
print "spam" * arg
spam(5)
# -> decorator!decorator!decorator!decorator!decorator!
# -> spamspamspamspamspam
デコレータに関数が渡されるっていうのがムズい ラップした関数と引数の関係がムズい 関数を戻すのがムズい
クラスに self が渡されるみたいな感じで function が渡されるのかな
現状での理解(動作の順序)
ex.
https://github.com/trsqxyz/bingo/blob/master/bingo.py