第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

動態(tài)模塊導(dǎo)入

動態(tài)模塊導(dǎo)入

楊__羊羊 2021-05-19 10:09:31
我有幾個執(zhí)行特定功能(數(shù)據(jù)解析,計算等)的自定義python模塊。然后,我有描述模塊的json配置(即模塊名稱,參數(shù),函數(shù)等)。最后,我要創(chuàng)建一個驅(qū)動程序腳本,以驅(qū)動這些模塊。配置或多或少地傳遞給驅(qū)動程序,驅(qū)動程序命令模塊基于此配置運(yùn)行某些功能。我想要做的是基于這些配置,我想動態(tài)導(dǎo)入這些模塊并遍歷基于配置提供的測試列表。配置的數(shù)量可以在1到N之間。由于模塊是基于模板創(chuàng)建的或通過配置提供的,因此測試列表將被硬編碼。即JsonFile:{ <module_name>: {    kw:<module>,    kw:<arg1>,    kw:<argN>    } }代碼:<parse json code>for key,val in jsonCfg.items():    lst.append(key)    for dctKey, itm in val.items():        if 'IMPORT' in dctkey:            importlib.import_module(itm)這就是到目前為止我所掌握的基礎(chǔ)知識?,F(xiàn)在,我陷入了如何命令python調(diào)用該模塊代碼的困境。我希望有類似標(biāo)準(zhǔn)進(jìn)口的東西...import <module> as <module_name>其中module是itm,而module_name是鍵。這樣,我就可以遍歷所有密鑰,并調(diào)用這些模塊的標(biāo)準(zhǔn)功能。即它應(yīng)該像這樣...import moduleX as MXMX.executeimport moduleY as MYMY.execute但是被編碼為...(偽代碼)<parse json code>for key,val in jsonCfg.items():    lst.append(key)    for dctKey, itm in val.items():        if 'IMPORT' in dctkey:            importlib.import_module(itm) as keyfor mod in lst.items()   mod.execute()我希望這是有道理的,即使不僅僅是評論,我也可以根據(jù)需要進(jìn)行澄清。
查看完整描述

1 回答

?
明月笑刀無情

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個贊

importlib.import_module 返回引用的導(dǎo)入模塊對象,您只需創(chuàng)建一個新變量并將其存儲即可訪問成員:


x = importlib.import_module(module_name)

x.some_func()

如果您有多個名稱,則可以將導(dǎo)入的模塊存儲在某種結(jié)構(gòu),列表或字典中,這對您來說很有意義:


dynamods = {}

for key, val in jsonCfg.items():

    for dctKey, itm in val.items():

        if 'IMPORT' in dctkey:

            dynamods[key] = importlib.import_module(itm) 

然后,您可以使用它來調(diào)用函數(shù):


for mod in dynamods

    dynamods[mod].execute()


查看完整回答
反對 回復(fù) 2021-05-25
  • 1 回答
  • 0 關(guān)注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號