2

メソッドgetExecutionTime( )を使用して、Python メソッドsayHello()の実行時間を測定したいと考えています。それらは両方ともモジュール内にあり、getExecutionTime() メソッドは外部から呼び出せる必要があります。

コードは次のようになります。

def getExecutionTime():
    t = timeit.Timer("sayHello", "from __main__ import sayHello")
    return t.timeit(2)

def sayHello():
    print("Hello")

「名前sayHelloをファイルにインポートできません...」というImportErrorが表示され続けます

timeit スコープ内でsayHello()"from __main__ import sayHello"メソッドを使用できるようにするために、Timer コンストラクターにスコープ引数 ( ) を追加しました。

注:このメソッドの主要部分で getExecutionTime() を呼び出したくありません。別の場所からそのメソッドを呼び出したいです。

誰でも助けることができますか?ありがとう。

4

2 に答える 2

2

私は文字通りこれであるファイルを持っています:

import timeit

def getExecutionTime():
    t = timeit.Timer("sayHello()", "from __main__ import sayHello")
    return t.timeit(2)

def sayHello():
    print("Hello")

print(getExecutionTime())

実行すると、2 回出力Helloされてから実行時間が出力されます。(セットアップでsayHello()はなく、sayHelloということにも注意してください)。Timer

これを IDE 内から実行していますか? コマンドラインとIDLEから、Python 2.7と3.2の両方で動作します。

于 2012-09-13T10:53:55.553 に答える