Python基础知识:观察者模式 浅浅的花香味﹌ 2022-05-17 04:58 184阅读 0赞 **A、语言优点** 1.Python语言简单,更优雅,直观上来看,省略;和\{\},代码看上去更干净,易读,易理解 2.入手快,学习曲线低 3.解释性语言 4.丰富的第三方库 **B、Python特性** 1.解释性语言,速度相较于c,c++相对慢一些,由于现在硬件配置都非常高,基本上没有影响,除非一些实时性比较强的项目,会有一点影响,可嵌套c程序解决 2.强制缩进 对于新手来说不习惯,少缩进一个空格就会报错,特别是多个if嵌套还需要print的时候,整不好就bug了,习惯了会发现强制空格非常优雅 **C、环境搭建** 大多数的开发工具都大同小异,自己用起来顺手就ok. 目前没有用到虚拟环境,后续会切换到linux环境,也很想尝试Python三大神器之一virtualenv: 1.Pycharm类似于微软的VS系列产品风格,功能强大,安装第三方库以及断点调试都很方便 ![这里写图片描述][70] 2.Sublime Text 界面优美,简洁 ![这里写图片描述][70 1] Python小程序:观察者模式实现 Python基本语法,自定义函数,基类定义,子类继承 # python实现观察者模式 #定义微信公众号接口 class WXPublisher(object): def __init__(self): pass def register(self): pass def unregister(self): pass def notifyAll(self): pass #公众号实现类 class PublishSevice(WXPublisher): def __init__(self,servicename): self._listOfUsers = [] #帖子文章 self.postname = None #服务号名称 self.servicenumber = servicename #添加订阅者信息 def register(self,userObj): if userObj not in self._listOfUsers: self._listOfUsers.append(userObj) #用户取消关注,取消订阅者 def unregister(self,userObj): self._listOfUsers.remove(userObj) #通知所有订阅者 def notifyAll(self): for objects in self._listOfUsers: objects.notify(self.postname) #发布消息 def writeNewPost(self,postname): print('微信服务号{}:{}'.format(self.servicenumber,postname)) self.postname = postname self.notifyAll() #定义订阅者接口 class Subscriber(object): def __init__(self): pass #通知接口 def notify(self): pass #订阅用户1 class User1(Subscriber): def __init__(self, username): self.username = username def notify(self,postname): print('微信用户:{},接受到了帖子:{}'.format(self.username,postname)) #订阅用户2 class User2(Subscriber): def __init__(self,username): self.username = username def notify(self,postname): print('微信用户:{},接受到了帖子:{}'.format(self.username,postname)) #订阅用户3 class User3(Subscriber): def __init__(self, username): self.username = username def notify(self,postname): print('微信用户:{},接受到了帖子:{}'.format(self.username,postname)) #订阅用户4 class User4(Subscriber): def __init__(self, username): self.username = username def notify(self,postname): print('微信号:{},接受到了帖子:{},并阅读了帖子'.format(self.username,postname)) #程序入口 if __name__ == "__main__": #微信服务号 travelsevice = PublishSevice("旅游小知识") pythonsevice = PublishSevice("Python论坛") #用户对象 user1 = User1('jack') user2 = User2('marin') user3 = User3('faker') user4 = User4('huni') #订阅旅游小知识公众号 travelsevice.register(user1) travelsevice.register(user2) travelsevice.register(user3) travelsevice.register(user4) #订阅Python论坛公帐号 pythonsevice.register(user1) pythonsevice.register(user2) pythonsevice.register(user3) pythonsevice.register(user4) #公众号发布文章通知所有订阅 travelsevice.writeNewPost("发布了迪士尼乐园游玩项目介绍") #用户2取消订阅旅游知识号 travelsevice.unregister(user2) #取消订阅的用户接收不到通知 travelsevice.writeNewPost("发布了一篇Python技术帖子") [70]: /images/20220517/33f9dbbb581247fab57797606b2f06e9.png [70 1]: /images/20220517/e15b17ba696c47a68665f8130e114bde.png
相关 观察者模式 观察者模式 Observer 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。 这个主题对象在状态上发生变化时,会通知所有观察者对 梦里梦外;/ 2022年08月03日 08:20/ 0 赞/ 65 阅读
相关 观察者模式 什么是观察者模式 有人这么说 > 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。 > > 这个主题对象在状态上发生变化时,会通知所有观 梦里梦外;/ 2022年07月20日 12:05/ 0 赞/ 319 阅读
相关 观察者模式 场景描述: 一个气象站应用,可以实时获取温度、湿度和气压信息,气象站提供一个封装好的类WeatherData,该类有最新的气象信息,当这些信息发生变动的时候,类中的meas 叁歲伎倆/ 2022年06月14日 10:24/ 0 赞/ 212 阅读
相关 观察者模式 观察者模式:定义了对象之间的一对多的依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 观察者模式图: ![输入图片说明][13105107_Mf 旧城等待,/ 2022年06月03日 02:41/ 0 赞/ 314 阅读
相关 Python基础知识:观察者模式 A、语言优点 1.Python语言简单,更优雅,直观上来看,省略;和\{\},代码看上去更干净,易读,易理解 2.入手快,学习曲线低 3.解释性语言 4.丰富的 浅浅的花香味﹌/ 2022年05月17日 04:58/ 0 赞/ 185 阅读
相关 python基础案例:观察者模式 使用观察者模式让班长通知学生起来上课了 主题 ---> 通知者 --->班长 class Monitor(object): def __in 淩亂°似流年/ 2022年03月22日 04:18/ 0 赞/ 224 阅读
相关 观察者模式 什么是观察者模式? 简单的来说,观察者模式=出版者+订阅者。用比较书面的话来说的话是:定义了对象之间的一对多依赖,当一所对应的对象状态改变时,它的所有依赖者都会收到通知并 你的名字/ 2022年02月01日 13:53/ 0 赞/ 439 阅读
相关 观察者模式 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 意图:定义对象 系统管理员/ 2021年09月17日 01:36/ 0 赞/ 532 阅读
相关 观察者模式 对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 介绍 ... 小灰灰/ 2020年06月13日 05:42/ 0 赞/ 627 阅读
还没有评论,来说两句吧...