欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何用Python語(yǔ)言實(shí)現(xiàn)觀察者模式

這篇文章主要介紹“如何用Python語(yǔ)言實(shí)現(xiàn)觀察者模式”,在日常操作中,相信很多人在如何用Python語(yǔ)言實(shí)現(xiàn)觀察者模式問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”如何用Python語(yǔ)言實(shí)現(xiàn)觀察者模式”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

創(chuàng)新互聯(lián)是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開(kāi)發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開(kāi)發(fā),軟件開(kāi)發(fā),微信小程序開(kāi)發(fā),十載建站對(duì)小攪拌車(chē)等多個(gè)方面,擁有多年的網(wǎng)站制作經(jīng)驗(yàn)。

示例代碼

首先是定義的觀察對(duì)象基類Observable基類。這個(gè)類簡(jiǎn)單地實(shí)現(xiàn)了觀察者登錄和取消登錄以及通知方法。這些方法會(huì)在派生類中使用。

# 觀察對(duì)象基類class Observable:    def __init__(self):        self.observers= []    def attach(self, observer):        print(type(observer), 'has beenattached!')        self.observers.append(observer)    def detach(self, observer):        print(type(observer), 'has beendetached!')        self.observers.remove(observer)    def notify(self):        for oin self.observers:            o.update()

接下來(lái)是具象觀察對(duì)象類。這個(gè)類的職責(zé)是在自身狀態(tài)發(fā)生變化時(shí)調(diào)用基類接口向登錄的觀察者發(fā)出更新通知。

# 觀察對(duì)象具象類class ConcreteObservable(Observable):    def __init__(self):        Observable.__init__(self)        self.state= None
   def set_state(self, state):        self.state= state        self.notify()
   def get_state(self):        return self.state

實(shí)際的觀察者類只需要實(shí)現(xiàn)觀察對(duì)象基類在通知時(shí)希望的update接口即可,具體如下:

# 觀察者具象類class ConcreteObserver(Observer):    def __init__(self,observable):        Observer.__init__(self)        self.observable= observable    def update(self):        print(type(self), self.observable.get_state())

下面的演示代碼在分別構(gòu)建Observable和Observer的具象類對(duì)象后,將Observer對(duì)象注冊(cè)到Observable對(duì)象上。當(dāng)改變Observable對(duì)象的狀態(tài)時(shí),可以得到狀態(tài)變化的輸出。觀察者被刪除之后再次改變Observable的狀態(tài),則無(wú)法得到狀態(tài)變化的輸出。

# 主程序if __name__ == '__main__':    observable = ConcreteObservable()    # 構(gòu)建觀察者    observer= ConcreteObserver(observable)    # 觀察者注冊(cè)    observable.attach(observer)    # 改變觀察對(duì)象狀態(tài),產(chǎn)生輸出    observable.set_state('State Changed1!')    # 觀察者刪除    observable.detach(observer)    # 再次改變觀察對(duì)象狀態(tài),不產(chǎn)生輸出    observable.set_state('State Changed2!')

演示程序的輸出如所示:

<class '__main__.ConcreteObserver'> has been attached!<class '__main__.IndependentObserver'> has been attached!<class '__main__.ConcreteObserver'> State Changed1!<class '__main__.IndependentObserver'> State Changed1!<class '__main__.ConcreteObserver'> has been detached!<class '__main__.IndependentObserver'> State Changed2!

到此,關(guān)于“如何用Python語(yǔ)言實(shí)現(xiàn)觀察者模式”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

新聞名稱:如何用Python語(yǔ)言實(shí)現(xiàn)觀察者模式
文章起源:http://aaarwkj.com/article6/pjcoog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)動(dòng)態(tài)網(wǎng)站、Google、網(wǎng)站導(dǎo)航企業(yè)網(wǎng)站制作、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
久久99精品人妻一区二区三区| 亚洲国产成人久久综合区| 国产午夜视频成人无遮挡| 国产日韩欧在线视频| 亚洲欧美日韩老汉影院| 少妇高潮一区二区三区99| 午夜在线免费观看小视频| 国产欧美成人精品第一区| 又黄又湿又刺激中文字幕| 国产精品日韩av一区二区| 成人午夜激情福利动态| 成人影院视频在线播放| 日韩av高清免费播放| 精品国产一区二区av麻豆| 久久伊人69日韩精品| 91嫩草国产在线观看| 国产成人国产精品国产三级| 亚洲国产精品区一区二区| 蜜臀国产午夜在线视频| 欧美国产日韩一区在线观看| 不用播放器的av蜜臀| 性生活视频在线观看免费| 天天精品国产av九九久久久| 青青草手机在线视频免费观看| 国产又粗又长又爽网站| 日韩精品一区二区三区高清| 国产传媒欧美日韩成人精品| 亚洲中文字幕在线乱码| 顶级少妇做爰片高潮丸| 欧美视频综合一级91| 亚洲一区成人免费电影| 日本黄色三级三级三级| 久久碰国产一区二区三区| 婷婷人妻中文字幕在线| 日本人妻在线一区二区三区| 人妻少妇亚洲中文字幕| 精品亚洲天堂一区二区三区| 男女性情视频免费大全网站| 熟女肥臀一区二区三区| 特别黄的日本免费视频| 男女在线视频网站免费|