Python 裝飾器是python中非常重要的特性之一。通過此功能,可以在不修改源代碼的情況下,動態地修改函數的行為。實際開發中,經常會需要在同一個函數上多次添加相同的功能,而這時使用裝飾器就非常方便,可以更好地管理代碼并提高代碼重用率。
以下是一個使用裝飾器的示例代碼,用于檢查函數運行時間:
import time def time_it(func): def wrap(): start = time.time() func() end = time.time() print(end - start) return wrap @time_it def my_function(): time.sleep(1) print("函數執行完畢") my_function()
上面的代碼中,定義了一個名為time_it的裝飾器函數,接受一個函數作為參數,并返回一個新的函數wrap。在wrap函數中,記錄了函數的開始和結束時間,并輸出函數運行的時間。在my_function前加上@time_it,就可以自動調用time_it函數來實現對my_function的裝飾。
這個簡單的例子演示了如何使用裝飾器來擴展函數的功能。Python的裝飾器功能非常強大,可以用于各種場合,比如:
- 登錄檢查
- 錯誤處理
- 日志記錄
- 權限的檢查等等
在實際使用中,可以根據需要自定義裝飾器,將代碼的邏輯更好地封裝,使得代碼可讀性更強,代碼重用性更好。