6 5 裝飾器的型別

2022-01-31 17:29:44 字數 891 閱讀 2508

當需求相似的函式需要使用裝飾器時,這種差別不大的函式,如果定義多個相似的裝飾器來各自裝飾特定函式就太過贅餘了。

【比如說a需要記錄日誌功能的裝飾器,b需要記錄日誌+傳送給指定管理員功能的裝飾器,它們之間有重合的功能--記錄日誌】【如果相同**量很大,那麼新弄的**重複量就更大了】

def

decorator(my_type):

def

print("

logged done

")#假功能

if my_type=='a'

: res =func()

return

res

else

:

print("

send done

")#假功能

res =func()

return

res

return

return

@decorator('a

')deftesta():

print("

run in a")

return

@decorator('b

')deftestb():

print("

run in b")

return

testa()

print("

-------------")

testb()

相當於,當裝飾器給定引數時,【裝飾器原本預設有乙個函式物件引數】,相當於會選擇第二次再傳入預設的函式物件引數

原本是:

裝飾器之類裝飾器

外部的方法至今都玩過了,現在來思索一下的方法這麼裝飾 類方法修飾器 類的方法唯一的特殊點在於,self內部是可以呼叫的,但是在外部卻是隱藏的,那這個怎麼搞 為求穩妥,先定參修飾乙個 def godme fun def godme self,message print before fun self,...

python裝飾器 裝飾器

由於函式也是乙個物件,而且函式物件可以被賦值給變數,所以,通過變數也能呼叫該函式。def now print 2015 3 25 f now f 2015 3 25 函式物件有乙個 name 屬性,可以拿到函式的名字 now.name now f.name now 現在,假設我們要增強now 函式的...

python裝飾器 函式裝飾器,類裝飾器

只要實現此 模式,這個obj就叫乙個裝飾器 參考 函式裝飾器 例子 def decorator func def inner args,kwargs print before.res func args,kwargs print after.return res return inner decor...