一种极简的、单线程和广播路由的可观察模式。

pypeeper的Python项目详细描述


PY窥视器

一种非常简单、极简、单线程和广播路由的方法,用于python中的可观察模式。

安装

pipinstallpypeeper

使用量

实现可观察类

每个类都可以通过从 观察员。如果类属性“pattern”被有效的regex覆盖 表达式,只有类构造函数中定义的匹配属性将 被观察到。否则,将观察所有属性。

frompypeeperimportObservable,ObserverclassAnyClass(Observable):def__init__(self):self.attribute_a=Falseself.whatever_attr=0defset_attribute(self,value):self.attribute_a=value

实现观察者类

任何类都可以是如上所示定义的所有可观察类的观察者。到 定义类应该如何对Observable的更改做出反应,只需重写 observer类中的“notify”方法。

classObserverClass(Observer):defnotify(self,class_name,object_id,attribute_name,old,new):print(class_name,object_id,attribute_name,old,new)

实例化并播放
my_observable=AnyClass()my_observer=ObserverClass()my_observable.set_attribute(True)my_observable.attribute_a=10my_observable.whatever_attr=None

控制台输出
>>> AnyClass 2448221506696 attribute_a False True
>>> AnyClass 2448221506696 attribute_a True 10
>>> AnyClass 2448221506696 whatever_attr 0 None

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java安卓,如何从一个私有的内部类更新视图元素,这个类是一个异步任务   如果代码中没有数字,则返回true的java方法   java是否将liferay service builder数据放入api?   java如何在javafx中显示单元格中的字符串数组   javascript如何从另一个GUI类获取变量?   创建多个对象后的java REST API POST响应?   java中静态块中声明的变量的范围是什么?   jsp Java,Spring MVC,从服务器中提取任何类型的文件(.png,.jpg,.pdf,.doc等)并提供给用户下载的最简单方法?   java应用程序运行在其他应用程序之上   java正则表达式匹配字符串是否应包含“;”特定字符串前后   C++的java原生源代码。awt。机器人   用于访问/共享单个目录的java多个Xodus应用程序   java将方法传递给另一个活动   java如何获取Struts 2中XWWWForMurlen编码的contenttype的参数