1
0

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.

Python_デコレーター

Posted at

デコレーターの書き方

from functools import wraps

def デコレーター名(func):
    @wraps(func) # なくても動くがある方よい
    def wrapper(*args, **kwargs): # どんな引数をとってもいいようにすると良い
        # デコレーターとしての機能を記述
        return func(*args, **kwargs) # funcの実行結果を返す
    return wrapper

デコレーターの使い方

@デコレーター名
def デコレーターを使用する関数():
   処理を書く


# 実行
デコレーターを使用する関数()

実行時間を計測するデコレーター例

import time
from functools import wraps

def stop_watch(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        print(f"実行時間(sec):{time.time()-start:2f}")
        return result
    return wrapper


@stop_watch
def my_sleep(sec):
    time.sleep(sec)
    print(f"{sec}秒待ちました")


my_sleep(10)

10秒待ちました
実行時間(sec):10.016692

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?