Python 動(dòng)態(tài)導(dǎo)入對(duì)象,importlib.import_module()使用
背景
一個(gè)函數(shù)運(yùn)行需要根據(jù)不同項(xiàng)目的配置,動(dòng)態(tài)導(dǎo)入對(duì)應(yīng)的配置文件運(yùn)行。
解決
文件結(jié)構(gòu)
a #文件夾
│a.py
│__init__.py
b #文件夾
│b.py
│__init__.py
├─c#文件夾
│c.py
│__init__.py
# c.py 中內(nèi)容
args = {'a':1}
class C:
? ??
? ? def c(self):
? ? ? ? pass
向a模塊中導(dǎo)入c.py 中的對(duì)象
解決方案
a.py
import importlib
params = importlib.import_module('b.c.c') #絕對(duì)導(dǎo)入
params_ = importlib.import_module('.c.c',package='b') #相對(duì)導(dǎo)入
# 對(duì)象中取出需要的對(duì)象
params.args #取出變量
params.C? #取出class C
params.C.c? #取出class C 中的c 方法
標(biāo)簽: