2

を使用して、ダミーデータで満たされたデータ構造を設定timeitするコードブロックがあり、このデータ構造からさまざまな方法でデータを取得する2つのステートメント(たとえば、、)があります。setuptest1test2

私がする時

t = timeit.Timer(test1, setup)
print t.timeit(3000)
t = timeit.Timer(test2, setup)
print t.timeit(3000)

テストごとに1回ずつ、セットアップが2回実行されていることに気付きました。2つのテストで同じ設定を共有することは可能ですか?つまり、setupコードブロックを1回だけ実行し、両方のテストで作成されたまったく同じデータ構造を使用することはできますか?

4

1 に答える 1

4

これを実現する最も簡単な方法は、セットアップ コードをモジュールに入れ、setup.py次に使用することです。

"from setup import name_1, name_2, name_3"

へのsetupパラメータとしてtimeit.timeit()。(そのような状況では、ワイルドカードのインポートは正しく機能しないことに注意してください。)

別のモジュールを使用したくない場合は、コードをメイン モジュールに入れて使用します。

"from __main__ import name_1, name_2, name_3"
于 2012-07-25T16:28:13.627 に答える