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

如何用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)站制作
水蜜桃在线观看一区二区国产| 91伊人手机在线观看| 久久精品亚洲欧美麻豆| 亚洲黄色暴力一区视频| 久久久久久亚洲av黄床| 偷拍丝袜美腿亚洲超碰| 日本免费高清一区二区| 亚洲综合激情一区二区| 麻豆精品新av中文字幕| 久草手机福利在线观看| 日本精品三级一区二区视频| 岛国大片一区二区三区| 中文字幕中出亚洲精品| 成人午夜福利视频免费观看| 婷婷丁香久久五月婷婷| 大香蕉国产精品视频在线| 欧美一区二区日韩一区二区| 亚洲av综合色区一区| 人成在线免费视频网站| 91麻豆粉色视频在线| 饥渴少妇高潮露脸嗷嗷叫| 人妻中出中文字幕一区二区| 少妇特黄a一区二区三区| 亚洲奇米精品一区二区| 国产精品白浆大屁股一区二区三| 插入内射视频在线观看| 亚洲国产不卡一区二区三区| 日韩中文在线中文网三级| 亚洲大片色一区在线观看| 高清欧美精品一区二区三区| 91九色午夜在线观看| 国产亚洲中文字幕91| 在线欧美日韩一区二区三区| 免费黄片视频大全在线播放| 日本色小姐美国青青草原| 欧美伦理片三级在线观看| 一区二区亚洲国产精品| 欧美口爆吞精在线播放| 美女少妇性高潮的视频| 久久热视频这里有精品| 久久国产精品成人av|