普通に計算する
Python コード内で時間を計測する場合、開始時点と終了時点で time.time()
を呼び出し、その差分で秒数を計算します。
import time
start_time = time.time()
# 処理
time.sleep(5)
print("{:.2f} sec".format(time.time() - start_time))
出力
5.01 sec
課題点
上記のやり方で問題があるわけではありませんが、時間計測が沢山必要な場合、計算ロジックを描くことで行数が増えますし、一時的な変数も増えます。
with 内の時間を計算する
with の内部に入ったときに開始、出るときに終了を計測し、時間を表示するクラスです。
tm.py
import time
class Timer:
def __init__(self):
pass
def __enter__(self):
self.time = time.time()
def __exit__(self, ex_type, ex_value, trace):
print("{:.2f} sec".format(time.time() - self.time))
使ってみた例
import time
# 読み込み
import tm
with tm.Timer():
# 処理
time.sleep(3)
出力結果
3.00 sec