日常使用的函數記錄

打印函數運行時間

import time

def time_logger(func):
    def w(*args, **kwargs):
        s = time.time()
        r = func(*args, **kwargs)
        e = time.time()
        time_diff = int(e-s)
        if time_diff > 1:
            print('function %s runtime: %s %s'%(
                         func.__name__, e-s, '!'*(time_diff//5)))
        return r
    return w

@time_logger
def delay(n):
    for i in range(n):
        if i < n:
            print(i)
            i += 1
            time.sleep(1)
    print("結束")

delay(20)

用了函數的裝飾器,其實裝飾器很簡單,用法如上,就是在執行你delay函數之前會先執行time_logger函數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章