我有一个类,它通过我的应用程序封装了数据库访问,并且我希望在数据库中的行发生更改时通知应用程序的其他部分。现在,我正在维护一个回调函数列表,当我需要发送通知时,我会及时创建一个DeferredList。这似乎是超级愚蠢的 - 是否有更惯用的方式?
示例代码:
class Db(object):
def __init__(self):
self.observers = []
def _on_notify(self, notify):
# called by the db connection
DeferredList(*[Deferred().addCallback(observer) for observer in self.observers]).callback(dict(notify=notify, db=self))
def observe(self, callback):
self.observers.append(callback)