python編程,一看就懂的代碼示例講解裝飾器

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

摘要:本文先講解python中對象的概念,在悟空問答的基礎上全面講解裝飾器如何裝飾類。

python編程,一看就懂的代碼示例講解裝飾器

一、python中,一切皆是對象

數值、字符串、列表、元組、集合、字典、函數模塊統統都是對象,對應類的實例。

使用內置函數type()即可顯示類名。

python編程,一看就懂的代碼示例講解裝飾器

因此,在函數中傳遞和返回”值、函數、類”等並沒有什麼不同,本質都是傳遞和返回對象。

二、理解裝飾器

裝飾器其實是一種設計模式,可以從以下兩個角度理解。

python編程,一看就懂的代碼示例講解裝飾器

比如裝飾器常常在插入日志、性能測試、事務處理大顯身手。

在往下閱讀之前,請確保已經看過python中如何理解裝飾器代碼

三、類裝飾器

類裝飾函數時,在裝飾階段,__init__ 函數執行;在被裝飾的函數被調用時,__call__ 執行。

python編程,一看就懂的代碼示例講解裝飾器

測試如下,顯然saytext函數被同一個對象裝飾。

python編程,一看就懂的代碼示例講解裝飾器

類裝飾類,示例攔截每個person對象的創建。

python編程,一看就懂的代碼示例講解裝飾器

測試效果如下:

python編程,一看就懂的代碼示例講解裝飾器

類裝飾器還可把類的名稱重新綁定另一個類

python編程,一看就懂的代碼示例講解裝飾器

同樣測試效果如下:

python編程,一看就懂的代碼示例講解裝飾器

四、裝飾器的鑲套

鑲套其實很好理解,一層層裝飾而已。

python編程,一看就懂的代碼示例講解裝飾器

相信都感覺到裝飾器的優雅、簡潔、強大。

如果對你有幫助,請點讚支持,有問題請評論。

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!