1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

時間計測を with 構文でするようにしてコードを綺麗にする

Posted at

普通に計算する

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
1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?