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

如何用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热精品综合在线观看| 亚洲大乳大丰满中文字幕| 婷婷综合伊人久久狠狠| 特色特色欧美黄色影院| 国产成人大片中文字幕在线| 免费久久人人爽人人爽| 91久久福利国产成人精品| 又爽又色的日本网站| 深夜福利视频一区二区| 亚洲精品中文字幕一二三| 日韩精品专区在线影院重磅| 国产99久久精品免费看| 欧美日韩精品国产精品| 国产国产成人精品久久蜜| 91九色最新国产在线| 日韩精品一区福利合集| 国产综合精品一区二区| 国产精品一区二区三区日本| 欧美一区二区三区人妻激情| 欧美精品三级不卡在线| 免费人成在线观看网站免费观看| 青青草原精品视频在线| 亚洲免费av一区在线观看| 麻豆久久av免费观看| 日韩高清在线一区二区三区| 麻豆国产原创av色哟哟| 日韩黄片一区二区三区| 在线观看一区二区三区国产视频| 久久精品亚洲精品国产| 日本黄色高清视频一区| 亚洲日本成人一区二区| 蜜桃午夜精品一区二区三区| 熟年人妻一区二区三区| 可以免费在线看的av网站| 国产日韩欧美视频在线观看| 伊人欧美一区二区三区| 日韩在线视频 一区二区三区| 日本二区三区在线视频| 在线亚洲av不卡一区二区三区|