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
有没有办法触发 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