1. 程式人生 > >python-day14--帶參數的裝飾器+多個裝飾器裝飾同一個函數

python-day14--帶參數的裝飾器+多個裝飾器裝飾同一個函數

目的 計算 auth fun return imm :after lag ()

1.# 帶參數的裝飾器
def f1(flag):
def f2(func):
def inner(*args,**kwargs):
if flag:
‘‘‘執行函數之前要做的‘‘‘
r=func(*args,**kwargs)
if flag:
‘‘‘執行函數之後要做的‘‘‘
return r
return inner
return f2
@f1(True)
def f3():
print(‘egon‘)
return (‘eva‘)
s=f3()
print(s)


2.#多個裝飾器裝飾一個函數
def qqxing(func):
def qqxing_inner(*args,**kwargs):
print(‘in qqxing:before‘)
ret = func(*args,**kwargs)
print(‘in qqxing:after‘)
return ret
return qqxing_inner

def pipixia(func):
def pipixia_inner(*args,**kwargs):
print(‘in pipixia:before‘)
ret = func(*args,**kwargs)
print(‘in pipixia:after‘)
return ret
return pipixia_inner


@qqxing
@pipixia
def dapangxie():
print("餓了麽")
dapangxie()



#應用場景

#func
#1.計算func的執行時間 @timmer
#1.登錄認證 [email protected]
/* */

[email protected] #先登錄 在認證
[email protected]
#func

#解耦 盡量的讓代碼分離。小功能之間的分離
#解耦的目的 提高代碼的重用性

python-day14--帶參數的裝飾器+多個裝飾器裝飾同一個函數