【Python】 関数の実行時間を計測する
Pythonにおいて時間を計測する方法はいくつかありますが、今回はデコレータを利用した方法を紹介します。
デコレータの定義
次のようにデコレータを定義します。
import functools from time import time def stop_watch(func): @functools.wraps(func) def wrapper(*args, **kwargs): start = time() result = func(*args, **kwargs) end = time() print("Elapsed time {:.5f}".format(end - start)) return result return wrapper
小数点以下の表示を制御するにはprint("Elapsed time{:.5f}")
内の数字を変更すると桁数を変更できます。
stop_watchデコレータで関数をデコレート
上で定義したデコレータを、計測したい関数の直前に@stop_watch
と追記するだけです。
@stop_watch def test_func(*args, **kwargs): print("計測したい関数")
これで実行時間が表示されます。
まとめ
デコレータを使うことで、簡単に使いまわせることができ便利ですね。
他にも便利なデコレータの使い方があればまとめていこうかと思っています。