Python 个事件和触发器

Python events & triggers

有没有办法触发 Python 中的 CHILD 对象?所以我的意思是:

class A(object):
  def a(self):
    print("Hello from A")
    # ???

class B(A)
  def b(self):
    print("Now in B")

我需要从 class A 触发 b() 函数,而 A 只“知道” B class延伸到它

我想将它用于插件之类的事件,因此会有一些带有 classes 的模块扩展了 main class,我将从中触发插件中的事件

您可以将抽象插件类型定义为可以调用其函数的接口:

class AbstractPlugin(object):
  def trigger(self):
    pass

class APlugin(AbstractPlugin):
  def trigger(self):
    print("This is plugin A")

class BPlugin(AbstractPlugin):
  def trigger(self):
    print("This is plugin B")

有了你的 class A,你可以做这样的事情:

class A(object):
  def a(self, plugin: AbstractPlugin):
    print("Hello from A")
    plugin.trigger()

master = A()
plugin_a = APlugin()
plugin_b = BPlugin()

master.a(plugin_a)
master.a(plugin_b)

这将导致:

Hello from A
This is plugin A
Hello from A
This is plugin B