https://blog.csdn.net/edward_zcl/article/details/88809212
背景
一个函数运行需要根据不同项目的配置,动态导入对应的配置文件运行。
解决
文件结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| a #文件夹 │a.py │__init__.py b #文件夹 │b.py │__init__.py ├─c#文件夹 │c.py │__init__.py
# c.py 中内容 args = {'a':1}
class C: def c(self): pass
|
目的
向a模块中导入c.py中的对象
解决方案
a.py
1 2 3 4 5 6 7 8 9
| import importlib
params = importlib.import_module('b.c.c') params_ = importlib.import_module('.c.c',package='b')
params.args params.C params.C.c
|
以上就是动态函数import_module的使用方法
又如:
https://blog.csdn.net/mouday/article/details/84062182
Python编程:importlib.import_module动态导入模块
环境:python 3.6
文件结构
1 2 3 4 5
| ├── clazz │ ├── __init__.py │ ├── a.py │ └── b.py └── main.py
|
a.py 的代码
1 2
| def show(): print("show A")
|
b.py 的代码
1 2
| def show(): print("show B")
|
从main中导入clazz包中的a 和b 模块
main.py
1 2 3 4 5 6 7 8 9 10 11
| import importlib
a = importlib.import_module("clazz.a") a.show()
b = importlib.import_module(".b", "clazz") b.show()
|
注意,相对导入有个一点., 类似路径。