python 实现装饰器设计模式
生活随笔
收集整理的這篇文章主要介紹了
python 实现装饰器设计模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python 裝飾器簡單、基本的實現并不復雜。裝飾器(Decorators)模式類似于繼承,當你需要為某一個對象添加額外的動作、行為時,在不改變類的情況下可以使用裝飾器。這篇文就當做一篇水文,本來不想寫,因為這個專欄是設計模式的多語言基本實現,不涉及過多內容,為了保證內容完整,所以只能直接塞進來了。
首先我們先新建一個人的基類,并且賦予幾個屬性(名字、性別、頭發、衣服等),并且由兩個基類,男人和女人:
class People():name = ""sex=""clothes = "沒穿"hair="光頭"sound_color=""class Man(People):def __init__(self,name):self.name=nameself.sex="男"class Woman(People):def __init__(self,name):self.name=nameself.sex="女"由于類以及新建,不進行改變,使用裝飾器進行行為狀態添加,是用裝飾器。
新建一個裝飾器基類,設置好裝飾器方法,gethair 與 getclothes,再寫兩個類 hairDecorator與 dressedDecorator 繼承于 exteriorDecorator,在裝飾器 hairDecorator 中使對象長出頭發,原有對象中頭發的屬性值是關頭,在 dressedDecorator 中使對象穿上衣服,原有屬性為沒穿衣服。裝飾器類如下:
以上裝飾器在初始化時傳入了類對象。接下來新建一個對象小明與裝飾器對象:
xiaoming=Man("小明") xiaomingHariD=hairDecorator(xiaoming)使用hairDecorator 方法裝飾小明的頭發,使用 dressedDecorator 裝飾小明的上衣:
xiaomingHariD=hairDecorator(xiaoming) xiaomingdressedD=dressedDecorator(xiaoming)最后進行輸出:
print(xiaomingHariD.gethair()) print(xiaomingdressedD.getclothes())結果如下:
完整代碼如下:
總結
以上是生活随笔為你收集整理的python 实现装饰器设计模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3 最基本且简单的实现组合设
- 下一篇: 看得懂的外观设计模式 python3 实