帶參數的裝飾器


當有很多函數都需要在某一個時間內需要裝飾是,通過三層嵌套,可以實現對多個函數進行裝飾。

import time
FLAGE = False
def timeer_out(flag):
    def timeer(func):
        def inner(*args,**kwargs):
            if flag:
                start = time.time()
                ret = func(*args,**kwargs)
                end = time.time()
                print(end - start)
                return ret
            else:
                ret = func(*args,**kwargs)
                return ret
        return inner
    return timeer
@timeer_out(FLAGE)
def lala():
    time.sleep(0.1)
    print("小垃圾")
lala()
View Code

例如這個函數,當你需要調用測試它的運行時間時,可以通過1設置一個參數來控制。當FLAG為False時就不會執行裝飾器。

當為Ture時。就會執行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM