一种极简的、单线程和广播路由的可观察模式。
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
>>> AnyClass 2448221506696 attribute_a False True
>>> AnyClass 2448221506696 attribute_a True 10
>>> AnyClass 2448221506696 whatever_attr 0 None