77 簡單的裝飾器

2022-08-30 00:48:10 字數 693 閱讀 4974

裝飾器的簡單用法:

def

color(func):

defred():

return

'\033[31;1m%s\033[0m

' %func()

return

reddef

boy():

return

"hello boy!!!

"@color

defgirl():

return

"hello girl!!!"if

__name__ == "

__main__":

print(boy()) #

沒有呼叫裝飾器,顏色不會變的。

hello = color(boy) #

此種寫法可以換成為hello加上@color的寫法。

print

(hello())

print(girl()) #

welcome因為有裝飾器,所以呼叫時不是呼叫welcome函式,

#而是呼叫color(welcome)()

#color(welcome)返回red,color(welcome)()等價於red()

結果輸出:

python簡單裝飾器 python裝飾器簡單使用

理解裝飾前先理解python閉包的概念 下面是對裝飾器的簡單舉例 實質 是乙個函式 引數 是你要裝飾的函式名 並非函式呼叫 返回 是裝飾完的函式名 inner 作用 為已經存在的物件新增額外的功能 特點 不需要對物件做任何的 上的變動 被裝飾的函式無引數 def decorate func 裝飾器列...

裝飾器的簡單使用

要玩裝飾器,就要知道閉包,何為閉包?我們要從閉包的三要素說起 1.函式巢狀 即乙個函式內部還有乙個函式。2.外部函式返回值為內部函式 名 3.內部函式要用到外部函式的變數。為啥要用裝飾器呢?我的理解為,在不改變原碼的基礎上拓展某些功能,不用再寫一遍 了,在某些程度上減少了 的冗餘。看 import ...

裝飾器的簡單了解

1.抽象元件 需要裝飾的抽象物件介面或者抽象父類。2.具體元件 需要裝飾的物件 3.抽象裝飾類 包含了對抽象元件的引用以及裝飾者共有的方法 4.具體的裝飾類 被裝飾的物件。public class decoratetest 1.抽象元件 inte ce drink 2.具體元件 class coff...