您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)Python中觀察者模式的原理是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
python的數(shù)據(jù)類型:1. 數(shù)字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數(shù)據(jù)類型,集合中可以放任何數(shù)據(jù)類型。5. 元組,元組用”()”標識,內(nèi)部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數(shù)據(jù)組合。
觀察者模式的一個demo:
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'Andy' """ 大話設(shè)計模式 設(shè)計模式——觀察者模式 觀察者模式又叫做發(fā)布-訂閱模式 (Publish Subscribe Pattern):定義了一種一對多的關(guān)系,讓多個觀察對象同時監(jiān)聽一個主題對象,當主題對象狀態(tài)發(fā)生變化時會通知所有觀察者,是它們能夠自動更新自己 使用場景:當一個對象的改變需要同時改變其他對象的時候,而且它不知道具體有多少對象待改變 """ #抽象通知者類 class Subject(object): def attach(self, observer): pass def detach(self,observer): pass def notify(self): pass #具體通知者類 class Boss(Subject): def __init__(self): self.observer_list = [] self.subject_status = '' def attach(self, observer): self.observer_list.append(observer) def detach(self,observer): self.observer_list.remove(observer) def notify(self): for item in self.observer_list: item.update() #抽象觀察者類 class Observer(object): def __init__(self, name, publish): self.name = name self.publish = publish def update(self): pass #具體觀察者類-看股票的人 class StockObserver(Observer): def update(self): print self.publish.subject_status,self.name,'關(guān)閉股票行情,繼續(xù)工作' #具體觀察者類-看NBA的人 class NbaObserver(Observer): def update(self): print self.publish.subject_status,self.name,'關(guān)閉NBA,繼續(xù)工作' if __name__ == "__main__": publisher = Boss() stocker = StockObserver('Andy',publisher) nbaer = NbaObserver('Tracy',publisher) publisher.attach(stocker) publisher.attach(nbaer) publisher.subject_status = '本老板回來了' publisher.notify()
運行結(jié)果:
本老板回來了 Andy 關(guān)閉股票行情,繼續(xù)工作
本老板回來了 Tracy 關(guān)閉NBA,繼續(xù)工作
上面類的設(shè)計如下圖:
看完上述內(nèi)容,你們對Python中觀察者模式的原理是什么有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。