动态事件条件

2024-09-30 14:32:39 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我们有一个名为Foo的类,当它准备好时,它会触发“ready”事件。在

from observer import SubjectSet

class Foo:
  def __init__(self):
    self.events = SubjectSet()
    self.events.create('ready')

  def do_sth(self):
    self.events.fire('ready')

如您所见,dou-sth方法生成Foo类的就绪实例。但子类将希望添加在发出就绪事件之前必须完成的新任务/条件。在

为了解决这个问题,我编写了一组名为TaskPool、Task、ObserverTask的新类。它们被Foo类这样使用:

^{pr2}$

现在,它在taskpool触发“success”事件时触发“ready”事件。正如您所期望的,将扩展Foo的类可以定义在触发ready事件之前必须完成的新任务。顺便说一下,几乎所有的任务都是异步的。在

你认为这是解决问题的好办法吗?我一直在寻找更好的解决方案,但我想我不知道正确的搜索短语。在

谢谢。在


Tags: fromimportselffooinitdefcreate事件
1条回答
网友
1楼 · 发布于 2024-09-30 14:32:39

我认为你并没有确切地定义你要解决的问题是什么。然而,这个解决方案并没有错。它显然是异步和事件驱动的。但我认为,一般来说,解决方案也应该指向错误情况,即,如果task1或task2由于任何原因而失败,会发生什么情况?它们可能也会被允许发送一个“失败”事件,然后这个事件也应该通过一些逻辑从Foo中传播出去,例如,如果task1失败,task2是否仍会运行到完成,还是会被中止;如果task1成功,task2失败,主对象会报告“success”或“failed”out还是什么?只是需要考虑的事情。在

相关问题 更多 >