## {{{ http://code.activestate.com/recipes/131499/ (r2)
class Subject:
def __init__(self):
self._observers = []
def attach(self, observer):
if not observer in self._observers:
self._observers.append(observer)
def detach(self, observer):
try:
self._observers.remove(observer)
except ValueError:
pass
def notify(self, modifier=None):
for observer in self._observers:
if modifier != observer:
observer.update(self)
# Example usage
class Data(Subject):
def __init__(self, name=''):
Subject.__init__(self)
self.name = name
self.data = 0
def setData(self, data):
self.data = data
self.notify()
def getData(self):
return self.data
class HexViewer:
def update(self, subject):
print 'HexViewer: Subject %s has data 0x%x' % (subject.name, subject.getData())
class DecimalViewer:
def update(self, subject):
print 'DecimalViewer: Subject %s has data %d' % (subject.name, subject.getData())
# Example usage...
def main():
data1 = Data('Data 1')
data2 = Data('Data 2')
view1 = DecimalViewer()
view2 = HexViewer()
data1.attach(view1)
data1.attach(view2)
data2.attach(view2)
data2.attach(view1)
print "Setting Data 1 = 10"
data1.setData(10)
print "Setting Data 2 = 15"
data2.setData(15)
print "Setting Data 1 = 3"
data1.setData(3)
print "Setting Data 2 = 5"
data2.setData(5)
print "Detach HexViewer from data1 and data2."
data1.detach(view2)
data2.detach(view2)
print "Setting Data 1 = 10"
data1.setData(10)
print "Setting Data 2 = 15"
data2.setData(15)
if __name__ == '__main__':
main()
## end of http://code.activestate.com/recipes/131499/ }}}
分享到:
相关推荐
├─千锋Python教程:第01章 第一个Python程序与数据存储及数据类型(9集) │ │ .DS_Store │ │ │ ├─code │ │ 1、数据存储.txt │ │ 2、第一个python程序.py │ │ 3、注释.py │ │ 4、输出与输入.py │ ...
清华大学出品的Python课件,非常适合Python新手,也适合老鸟复习回顾,完全可用于自学入门 清华大学精品Python学习PPT课件-第1章 Python3概述.pptx 清华大学精品Python学习PPT课件-第2章 Python基本语法.pptx 清华...
Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python...
中央财经大学会计学院Python作业 中央财经大学会计学院Python作业 中央财经大学会计学院Python作业 中央财经大学会计学院Python作业 中央财经大学会计学院Python作业 中央财经大学会计学院Python作业 ...
基于知识图谱的智能问答系统python实现(复旦大学论文基于qa语料和知识库的问答系统)_python 智能问答,python 智能问答系统-机器学习代码类资源本代码实现是基于python实现的基于复旦大学崔万云博士的learing ...
Python上市公司财报分析系统源码 Python上市公司财报分析系统源码 Python上市公司财报分析系统源码 Python上市公司财报分析系统源码 Python上市公司财报分析系统源码 Python上市公司财报分析系统源码...
Python无线干扰智能分析及定位系统Python无线干扰智能分析及定位系统Python无线干扰智能分析及定位系统Python无线干扰智能分析及定位系统Python无线干扰智能分析及定位系统Python无线干扰智能分析及定位系统Python...
Python毕业设计:车牌识别系统源码Python毕业设计:车牌识别系统源码Python毕业设计:车牌识别系统源码Python毕业设计:车牌识别系统源码Python毕业设计:车牌识别系统源码Python毕业设计:车牌识别系统源码Python...
1.在 Python中,合法的标识符是【 C. it s D. str 2. Python表达式中,可以使用【 】控制运算的优先顺序。 A.圆括号( B.方括号[门 C.花括号D.尖括号〈 3.以下 Python注释代码,不正确的是【 A.# Python注释代码 B.# ...
1、Python环境搭建 1.1 Python简介 1.2 Python语言的发展历程 1.3 Python语言的主要特点 1.4 Python应用场景 1.5 Python环境搭建 1.6 第一个Python程序 1.7 集成开发工具 2、Python语法基础 2.1 Python中的...
【Python基础】Python_PYTHON⼊门_零基础Python⼊门_Python爬⾍_Python课程第⼆篇_Python进阶 【Python基础】Python_PYTHON⼊门_零基础Python⼊门_Python爬⾍_Python课程第三篇_Python终极 【Python基础】Python...
《学习Python(第5版)(影印版)(套装共2册)》通过小测验、练习和有效的讲解,这本易于遵循、自学的教程可以让你上手Python2.7和Python3.3——3.x和2.x产品线上的最新发布版本一一以及目前其他常见的版本。你也将学到...
基于Python的报名系统源码基于Python的报名系统源码基于Python的报名系统源码基于Python的报名系统源码基于Python的报名系统源码基于Python的报名系统源码基于Python的报名系统源码基于Python的报名系统源码基于...
智普教育python培训就业班python随堂视频教程 01 Python简介.flv 智普教育python培训就业班python随堂视频教程 02 分支语句if基础.flv 智普教育python培训就业班python随堂视频教程 03 分支语句与逻辑关系表达式....
python 3.10.0参考文档是一套python官方发布的参考使用文档完整版,包含python安装使用、API参考、常见问题、标准库参考、语言参考、入门教程等,需要的朋友可下载! Python 提供了许多模块来帮助使用 Python 语言...
##如果不想安装python多版本,建议使用 Virtualenv 创建新的python 3.6.8环境 :virtualenv env_name --python=python3.6.8,具体使用自行百度virtualenv,或者加微信freofreo,交流交流 ##直接安装指定版本的...
Python基于Django学生宿舍管理系统源码 Python基于Django学生宿舍管理系统源码 Python基于Django学生宿舍管理系统源码 Python基于Django学生宿舍管理系统源码 Python基于Django学生宿舍管理系统源码 Python基于...
python期末大作业书店销售管理系统源码,python期末大作业书店销售管理系统源码python期末大作业书店销售管理系统源码python期末大作业书店销售管理系统源码python期末大作业书店销售管理系统源码python期末大作业...
由于Python官方原因, Python.3.10无法在win8以下系统(包括win7)中运行, 这是我整理的兼容win7的Python 3.10版本。本安装包还提供了一些工具和补丁, 帮助python兼容win7系统。 经测试, 本Python.3.10支持运行IDLE, ...
python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip ...