W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
你想導(dǎo)入一個(gè)模塊,但是模塊的名字在字符串里。你想對(duì)字符串調(diào)用導(dǎo)入命令。
使用importlib.import_module()函數(shù)來(lái)手動(dòng)導(dǎo)入名字為字符串給出的一個(gè)模塊或者包的一部分。舉個(gè)例子:
>>> import importlib
>>> math = importlib.import_module('math')
>>> math.sin(2)
0.9092974268256817
>>> mod = importlib.import_module('urllib.request')
>>> u = mod.urlopen('http://www.python.org')
>>>
import_module只是簡(jiǎn)單地執(zhí)行和import相同的步驟,但是返回生成的模塊對(duì)象。你只需要將其存儲(chǔ)在一個(gè)變量,然后像正常的模塊一樣使用。
如果你正在使用的包,import_module()也可用于相對(duì)導(dǎo)入。但是,你需要給它一個(gè)額外的參數(shù)。例如:
import importlib
# Same as 'from . import b'
b = importlib.import_module('.b', __package__)
使用import_module()手動(dòng)導(dǎo)入模塊的問(wèn)題通常出現(xiàn)在以某種方式編寫(xiě)修改或覆蓋模塊的代碼時(shí)候。例如,也許你正在執(zhí)行某種自定義導(dǎo)入機(jī)制,需要通過(guò)名稱(chēng)來(lái)加載一個(gè)模塊,通過(guò)補(bǔ)丁加載代碼。
在舊的代碼,有時(shí)你會(huì)看到用于導(dǎo)入的內(nèi)建函數(shù)import()。盡管它能工作,但是importlib.import_module() 通常更容易使用。
自定義導(dǎo)入過(guò)程的高級(jí)實(shí)例見(jiàn)10.11小節(jié)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: