【python】デコレータ小技
先日のcedecの公演のひとつにpythonでデコレータ使うと
何かと素敵だよって言ってるものがあった。
実はソースに「@」が入っているものはどういう意味かわからず
放置していた。
そう。まさにこいつがデコレータ使うよって合図だったらしい。
ざっくり理解したのは関数の前後に呼び出すことができるよ!
ってこと。
なるほど。
じゃあこれで時間が計測できるってわけね。毎回書くのが
めんどくさいなぁと思っていたことをこんなに簡単に
できただなんて、、。
しかも関数を汚さずできるなんて素敵すぎる。
import time
import datetime
def get_time_deco(function):
def get_time():
inp = datetime.datetime.now()
function()
print datetime.datetime.now() - inp
return get_time()
@get_time_deco
def test1():
for i in range(100):
time.sleep(0.1)
test1()