gpt4 book ai didi

python - 从 Python 列表中选择类(插件)

转载 作者:行者123 更新时间:2023-11-30 22:53:05 25 4
gpt4 key购买 nike

我在 python 中有一个类(插件)列表,我从文件夹中读取它们并将它们存储在插件列表中,如下所示:

#Read all classes from plugin folder    
plugnplay.plugin_dirs = ['./plugins']
plugnplay.load_plugins()
plugins = PluginAlerter.implementors()

然后我的所有类都存储在插件列表中

示例:

[<plugins.AddUserAlert.AddUserAlert object at 0x7f593d6d4e90>, <plugins.ElasticSearchDisponibilityAlert.ElasticSearchDisponibilityAlert object at 0x7f593d732210>]

我有一个守护进程来执行列表中的每个插件,并且像魅力一样工作

for plugin in self.plugins:
#do the rest of code

现在,通过这个列表,我想选择要执行的第二个插件,有时我想执行第一个和第三个插件,从我的选择中选择不同的插件

如果我选择第二个插件为例,则会出现此错误:

#line to select the second plugin
plugins = plugins[1]

File "./Daemon.py", line 78, in __init__
for plugin in self.plugins:
TypeError: 'ElasticSearchDisponibilityAlert' object is not iterable

有什么建议或提示吗?谢谢

最佳答案

您尝试迭代“插件”类型的单个项目而不是插件列表:

# plugins is a list
plugins = plugins[1]
# now plugins is a single element

您可以强制插件始终为列表:

self.plugins = [self.plugins[1]]

或者更一般地说:

# select one or more plugins from the initial list
self.plugins = selectplugin(self.plugins)
# check type of plugins
if not isinstance(self.plugins, list):
self.plugins = [self.plugins]
for plugin in self.plugins:
# do some stuff

关于python - 从 Python 列表中选择类(插件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38326506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com