ChatGPTにデコレーターを利用した処理時間計測Pythonコードを書いてもらった

ChatGPTにデコレーターを利用した処理時間計測Pythonコードを書いてもらいました。

 

指示分(プロンプト):

デコレーターを用いてpythonコードの実行時間を計測したいです。計測するコードへの変更は極力抑えたいので、デコレーターを外部化する形にしてください。サンプルコードを提示してください。

 

回答:

デコレーターを外部モジュールに定義し、必要なコードに適用することができます。以下は、外部モジュールとしてデコレーターを定義する方法の例です。

timer.pyというファイルを作成し、以下のようにtimerデコレーターを定義します。


import time

def timer(func):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        result = func(*args, **kwargs)
        end_time = time.time()
        print(f"実行時間: {end_time - start_time}秒")
        return result
    return wrapper
    

このファイルをインポートして、デコレーターを適用するコードに@timerをつけます。


from timer import timer

@timer
def my_function():
    # ここに計測したいコードを記述します
    pass

# my_functionを呼び出すと、実行時間が出力されます
my_function()
    

この方法を使用すると、デコレーターのコードを別ファイルに分離することができます。また、timer.pyファイルを必要なプロジェクトのディレクトリに配置することで、複数のプロジェクトで再利用できるようになります。

結果:

以下のように成功しました。