首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python事件和触发器

Python事件和触发器
EN

Stack Overflow用户
提问于 2021-06-24 20:18:45
回答 1查看 159关注 0票数 0

在Python中有没有触发子对象的方法?所以我的意思是:

代码语言:javascript
运行
复制
class A(object):
  def a(self):
    print("Hello from A")
    # ???

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

我需要从类A触发b()函数,而A只“知道”B类扩展到它

我想将它用于插件之类的事件,所以会有一些带有扩展主类的类的模块,我将从这些模块中触发插件中的事件

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-24 20:23:46

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

代码语言:javascript
运行
复制
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")

使用你的A类,你可以这样做:

代码语言:javascript
运行
复制
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)

这将导致:

代码语言:javascript
运行
复制
Hello from A
This is plugin A
Hello from A
This is plugin B
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68115635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档