我想制作类似插件系统的东西,但无法使其正常工作。具体来说,我有一些要求。我有主要脚本谁应该在./plugins目录中搜索其他python脚本并加载它们。该主脚本正在搜索使用以下方法从Base继承的类globals()如果我将这些类放在相同的主文件中,则效果很好,但我无法按需运行。是否可以在Python中执行此操作?我尝试做这样的事情:资料来源:plugins / test.pyclass SomeClass(Base): def __init__(self): self.name = "Name of plugin"主脚本仅在此类上执行一些方法。
3 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
您可以动态导入python文件,也可以使用该exec
语句(确保定义要在其中执行的上下文,否则将使用您在其中使用该语句的上下文)。然后使用Base.__subclasses__
,假设Base
它是一种新型类,或者从导入的插件模块中调用一个函数。在后一种情况下,您必须提供插件注册机制。
添加回答
举报
0/150
提交
取消