【发布时间】:2020-03-28 11:38:23
【问题描述】:
假设我有一个 python 3.7+ 模块/脚本 A 可以进行大量计算。此外,模块 A 正在另一个模块 B 中使用,其中模块 A 被完全封装,模块 B 不知道模块 A 的很多内部实现,只是以某种方式输出其计算的进度。
将我视为模块 A 的负责人(A 人),其他不认识我的人(B 人)正在编写模块 B。所以 A 人基本上是在编写一个开放库。
模块 A 输出其进度的最佳方式是什么?我想这是一个设计决定。
- 模块 A 中的 getter 是否有意义,因此模块 B 必须始终调用此 getter(可能在循环中)才能检索 A 的进度?
- 是否有可能以某种方式使用在模块 A 中实现的回调函数,使得每次进度更新时都会调用该函数?让这个回调返回A的当前进度。
- 是否有任何其他可以使用的方法?
将我指向现有的解决方案将非常有帮助!
【问题讨论】:
-
这似乎很好地使用了Observer pattern。这里的 Python 示例:Observer in Python.
标签: python python-3.x design-patterns progress