gpt4 book ai didi

python-3.x - 导入模块列表

转载 作者:行者123 更新时间:2023-12-04 10:56:34 25 4
gpt4 key购买 nike

我有一些插件系统,所有插件都可以简单地添加到文件夹中。

现在我手动导入它们,如下所示:

# main.py
from modules.AA import aa
from modules.BB import bb
from modules.CC import cc
from modules.DD import dd
...

但我想让它更具动态性,所以我可以将所有内容导入列表 ['aa', 'bb', 'cc', 'dd',... ]
文件夹结构:
main.py
/modules/__init__.py
/modules/AA.py
/modules/BB.py
/modules/CC.py
...

我可以将此添加到
__init__.py : __all__ = ['aa', 'bb', 'cc', 'dd']
但是我必须调用像 AA.aa() 这样的函数

需要什么才能简单地调用 aa() ?

最佳答案

main.py , 你可以使用 exec 在带有列表中元素的格式化字符串上,例如:

attributes = ['aa', 'bb', 'cc', 'dd']

for attribute in attributes:
exec(f'from modules.{attribute.upper()} import {attribute}')

如果模块名称不能从属性名称派生,您当然可以使用单独的列表(或 dict,如果您愿意):

modules = ['AA', 'BB', 'CC', 'DD']
attributes = ['aa', 'bb', 'cc', 'dd']

for module, attribute in zip(modules, attributes):
exec(f'from modules.{module} import {attribute}')

关于python-3.x - 导入模块列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59138127/

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