91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中觀察者模式的原理是什么

發布時間:2021-05-11 15:42:47 來源:億速云 閱讀:183 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關Python中觀察者模式的原理是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

python的數據類型有哪些?

python的數據類型:1. 數字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數據類型,集合中可以放任何數據類型。5. 元組,元組用”()”標識,內部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數據組合。

觀察者模式的一個demo:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設計模式
設計模式——觀察者模式
觀察者模式又叫做發布-訂閱模式 (Publish Subscribe Pattern):定義了一種一對多的關系,讓多個觀察對象同時監聽一個主題對象,當主題對象狀態發生變化時會通知所有觀察者,是它們能夠自動更新自己
使用場景:當一個對象的改變需要同時改變其他對象的時候,而且它不知道具體有多少對象待改變
"""
#抽象通知者類
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,'關閉股票行情,繼續工作'
#具體觀察者類-看NBA的人
class NbaObserver(Observer):
  def update(self):
    print self.publish.subject_status,self.name,'關閉NBA,繼續工作'
if __name__ == "__main__":
  publisher = Boss()
  stocker = StockObserver('Andy',publisher)
  nbaer = NbaObserver('Tracy',publisher)
  publisher.attach(stocker)
  publisher.attach(nbaer)
  publisher.subject_status = '本老板回來了'
  publisher.notify()

運行結果:

本老板回來了 Andy 關閉股票行情,繼續工作
本老板回來了 Tracy 關閉NBA,繼續工作

上面類的設計如下圖:

Python中觀察者模式的原理是什么

看完上述內容,你們對Python中觀察者模式的原理是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新乡县| 西林县| 肥乡县| 玉山县| 双桥区| 大新县| 三穗县| 贵南县| 江都市| 专栏| 屯门区| 于都县| 崇文区| 开封县| 铁岭县| 利津县| 鸡泽县| 四子王旗| 菏泽市| 梁河县| 巩留县| 临安市| 南昌县| 射洪县| 昭平县| 西华县| 余姚市| 霍城县| 格尔木市| 濉溪县| 兰溪市| 木兰县| 兴和县| 西安市| 莲花县| 清水河县| 彝良县| 泗洪县| 铜梁县| 满洲里市| 英吉沙县|