デコレータ

やべぇ、まだ分かってねぇ。
そして頭が沸いてきたので今日はここまでにしよう。

デコレータの利用 - いろいろ備忘録日記
http://morchin.sakura.ne.jp/effective_python/decorator.html
辺りをつらつら読んだが把握しきれずorz


クロージャとかが関係しているくさいが…
ま、明日辺りにがんばろう。


とりあえず

def deco(func):
    print "Hello, world!"

@deco
def foo():
    print "I'm never called."

def foo2():
    print "I'm never called."
foo2 = deco(foo2)

def main():
    foo
    foo2

if __name__ == "__main__":
    main()

とすると、

D:\workspace\Python\3-8>python test.py
Hello, world!
Hello, world!

と出力される。


foo()とfoo2()にdeco()のprint文がラップされたことになるのかな??
まだよく分からんけど、未知なる面白さがありそうな予感。
そろそろ言語の深いところに踏み込んできた感じがしなくもない。
そして、それにしたがって、理解度曲線が大幅に下落してきた。