1. ホーム
  2. python

[解決済み] time.process_time()を使った作業

2022-02-08 01:35:08

質問

ソート関数にかかる時間を計っているのですが、以下のような問題があります。 time.process_time() を動作させることができます。

現在の私の設定は

start = time.process_time()
insertionsort(n)
end = time.process_time()

time = start-end

これを実行すると、こんなエラーが出ます。

'float' オブジェクトには 'process_time' という属性がありません。

この問題を解決するにはどうしたらいいですか?私は time.process_time() .

解決方法は?

問題は、あなたが示していないコードの一部にあります。私は、あなたが time モジュールがあります。

import time

これは、名前を作成する time を参照する time モジュールになります。

しかし、後で変数名 time は、時差を保存するものです。その時点で time は、モジュールではなく、差分を参照しています。そのため time.process_time() というエラーになります。

この簡単なスニペットは問題を説明するものです。

>>> import time
>>> time = -(time.process_time() - time.process_time())
>>> time.process_time()
AttributeError: 'float' object has no attribute 'process_time'

をどうしても使いたい場合は time.process_time() の場合、時差を格納する変数の名前を変更するのが最も良い方法でしょう。

measured_execution_time_insertionsort = end - start

をインポートすることもできますが process_time 関数から time モジュールを直接使用します。

from time import process_time

start = process_time()
insertionsort(n)
end = process_time()

time = end - start

どちらの方法でも、名前の衝突を避けることができます。しかし、私は timeit モジュールよりも適しています。 time モジュールになります。