Python:用來顯示函數執行時間的裝飾器

預備知識

裝飾器是一個函數。通過學習菜鳥教程來了解裝飾器的基本概念、作用和Python語法。

正文

本文介紹一個用來顯示函數執行時間的裝飾器。以下的代碼用來裝飾一個函數,使函數運行完畢後能顯示函數的運行時間,而且可以自定義提示信息。

def time_decorator_with_prompt(prompt_infor):
    def time_decorator(f):
        @wraps(f)
        def decorated(*args, **kwargs):
            start_time = time.time()
            result = f(*args, **kwargs)
            print(prompt_infor + ", Time =", time.time() - start_time)
            return result
        return decorated
    return time_decorator

這段代碼的範式學習自菜鳥教程

解釋

這段代碼最有意義的是給裝飾器加參數。通過外面套一個函數的殼(time_decorator_with_prompt),使用多少參數都可以通過外面的殼傳入,然後在殼內部直接使用這些參數確定裝飾器,最後返回這個被確定的裝飾器。在外部確定參數,也是函數式編程一個很大的應用。

應用

以下是一個應用的例子:

@time_decorator_with_prompt(prompt_infor = "Load File Successfully")
def load_file():
    # load some file
    return something

load_file()

輸出信息:

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