来自PyPubSub:
Pypubsub为您的Python应用程序提供了一种简单的方法来解耦其组件:应用程序的某些部分可以发布消息(有或没有数据),其他部分可以订阅/接收它们.这允许消息"发件人"和消息"听众"彼此不知道:
一个不需要导入另一个
发件人不需要知道
"谁"得到消息,
听众会对数据做些什么,
或者即使任何听众都会收到消息数据.
同样,听众也不必担心消息的来源.
这是实现模型 - 视图 - 控制器架构或促进其组件解耦的任何类似架构的绝佳工具.
似乎有相当多的Python模块用于在Web上发布/订阅,从PyPubSub到PyDispatcher,再到简单的"自制"类.
比较不同的模块时是否有特定的优点和缺点?哪些模块已经过基准测试和比较?
提前致谢
PyDispatcher在Django中被大量使用,它对我来说非常有效(对于整个Django社区,我猜).
我记得,有一些性能问题:
PyDispatcher进行的参数检查很慢.
未使用的连接有不必要的开销.
AFAIK你不太可能在中小型应用程序中遇到这个问题.所以这些问题可能与您无关.如果你认为你需要每一磅性能(过早优化是所有邪恶的根源!),你可以看看在Django中对PyDispatcher所做的修改.
希望这可以帮助.