观察者模式的一个非常简单的实现
simpleobserver的Python项目详细描述
观察者模式的简单实现。
importsimpleobserver# Create a subject and list the events it might firefoo=simpleobserver.Subject('bar','baz')# Add a listenerdeffoo_bar_listener(*args):print("heard 'bar'",args)foo('bar',foo_bar_listener)# fire eventsfoo.fire('bar',1,2,3)# -> heard 'bar' (1, 2, 3)# Trying to listen to an unregistered event throws an errorfoo('snorble',lambda:None)# -> AssertionError: snorble is not a valid event for this subject# Same with trying to fire an unregistered eventfoo.fire('snorble')# -> AssertionError: snorble is not a valid event for this subject