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

如何用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)站制作
久草福利视频免费播放| 亚洲国产熟女导航网站视频| 精品伊人久久大香线蕉| 免费国产成人在线视频| 美女一区二区三区日本美女在线观看| 蜜臀在线免费观看av| 久久成人影院免费观看| 色婷婷综合五月在线观看| 久久精品一偷一偷国产| 国产av自拍在线免费观看| 亚洲社区一区二区三区四区| 一区二区三区中文在线播放| 真人国产一级美女免费视频| 日本免费中文字幕在线| 久久中文字幕一区二区三区 | 成人黄色18免费网站| 国产一级黄色免费大片| 色在色在线播放亚洲中文| 激情网站免费在线观看| 日韩亚洲欧美另类精品| 国产精品大全中文字幕| 日韩高清av一区二区三区| 亚洲国产成在人网站天堂| 日韩国产欧美一区二区在线视频| 亚洲午夜精品久久久天堂| 国产精品一区二区三区熟女| 成人在线观看av毛片| 亚洲美腿丝袜综合在线| 一本久道久久综合久久鬼色| 亚洲综合国产一区二区| 长腿丝袜美女亚洲一区二区| 久久精品国产欧美日韩| 国产一区二区三区av网站| 亚洲日本韩国三级一区| 高清国产在线播放91| 亚洲午夜福利影院在线免费观看| 蜜桃精品视频在线播放| 乱熟av一区二区三区| 国产精品蜜臀av在线一区| 麻豆视传媒短视频网站免费| 欧美亚洲另类日韩综合网|