您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python观察者模式:示例,提示?

Python观察者模式:示例,提示?

但是,它确实缺乏灵活性。

好吧……实际上,如果您想要异步API,那么对我来说这似乎是一个不错的设计。通常是这样。也许您所需要的只是从stderr切换到Python的logging模块,该模块具有自己的发布/订阅模型,Logger.addHandler()以及诸如此类的东西。

如果您确实想支持观察者,我的建议是使其保持简单。您实际上只需要几行代码

class Event(object):
    pass

class Observable(object):
    def __init__(self):
        self.callbacks = []
    def subscribe(self, callback):
        self.callbacks.append(callback)
    def fire(self, **attrs):
        e = Event()
        e.source = self
        for k, v in attrs.iteritems():
            setattr(e, k, v)
        for fn in self.callbacks:
            fn(e)

您的Job类可以子类化Observable。发生感兴趣的事情时,请致电self.fire(type="progress", percent=50)或类似电话。

python 2022/1/1 18:42:19 有267人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶