Python 3.x 导入模块列表
我有一些插件系统,所有插件都可以简单地添加到一个文件夹中 现在我手动导入它们,如下所示:Python 3.x 导入模块列表,python-3.x,python-import,Python 3.x,Python Import,我有一些插件系统,所有插件都可以简单地添加到一个文件夹中 现在我手动导入它们,如下所示: # 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__.
# 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
...
我可以把这个加进去
\uuuuu init\uuuuuuuuuuuuupy
:\uuuuuuuu all\uuuuuuuuuu=['aa','bb','cc','dd']
但是我必须调用函数,比如AA.AA()
在
main.py
中调用aa()
需要什么?,您可以在带有列表中元素的格式化字符串上使用,例如:
attributes=['aa','bb','cc','dd']
对于属性中的属性:
exec(f'from modules.{attribute.upper()}import{attribute}')
如果无法从属性名称派生模块名称,当然可以使用单独的列表(如果愿意,也可以使用dict
):
modules=['AA','BB','CC','DD']
属性=['aa','bb','cc','dd']
对于模块,zip中的属性(模块,属性):
exec(f'from modules.{module}import{attribute}')
是的,这是真的:)但是这些文件和函数名刚刚组成了这个例子。然而,我可以做一些类似于exec(f'from modules.{module}import{module}')