1. 程式人生 > >Python_裝飾器進階_32

Python_裝飾器進階_32

style args rgs color pan class 情況 UNC 裝飾

#帶參數的裝飾器
#500個函數
import time
FLAGE = True
def timmer_out(flag):
    def timmer(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 timmer # timmer = timmer_out(FLAGE) #timmer = timmer_out(FLAGE) #wahaha = timmer(wahaha) #@timmer @timmer_out(FLAGE) def wahaha(): time.sleep(
0.1) print(wahahahahahaha) @timmer_out(FLAGE) def erguotou(): time.sleep(0.1) print(erguotoutoutou) wahaha() erguotou()

#多個裝飾器裝飾一個函數
def wrapper1(func):
    def inner1():
        print(wrapper1 ,before func)
        ret = func()
        print(wrapper1 ,after func
) return ret return inner1 def wrapper2(func): def inner2(): print(wrapper2 ,before func) ret = func() print(wrapper2 ,after func) return ret return inner2 def wrapper3(func): def inner3(): print(wrapper3 ,before func) ret = func() print(wrapper3 ,after func) return ret return inner3 @wrapper3 @wrapper2 @wrapper1 def f(): print(in f) return 哈哈哈 print(f()) #記錄用戶的登錄情況 #計算這個函數的執行時間

Python_裝飾器進階_32