您好,登錄后才能下訂單哦!
Python中Importlib與__import__指的是什么?這個(gè)問(wèn)題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見(jiàn)到的。希望通過(guò)這個(gè)問(wèn)題能讓你收獲頗深。下面是小編給大家?guī)?lái)的參考內(nèi)容,讓我們一起來(lái)看看吧!
Importlib模塊與__import__都可以通過(guò)過(guò)字符串來(lái)導(dǎo)入另外一個(gè)模塊,但在用法上和本質(zhì)上都有很大的不同。
以一個(gè)例子為證:
以下為我的工程目錄結(jié)構(gòu):
lib/test.py:
name = "Jack" def getName(): print(name) return name
demo.py:
name = "Amy" def getName(): print(name) return name
Importlib模塊的例子:
testImportlib.py:
import importlib mName = "lib.test" module = importlib.import_module(mName) module.getName()
Importlib是python的一個(gè)庫(kù),通過(guò)導(dǎo)入importlib,調(diào)用import_module()方法,傳入用戶想要獲取的模塊對(duì)應(yīng)的路徑字符串,即可獲取一個(gè),模塊module,module可以調(diào)用這個(gè)test模塊下的所有屬性和方法。
運(yùn)行截圖:
__import__的例子:
__import__是python的一個(gè)內(nèi)置方法,直接調(diào)用__import__()即可獲取一個(gè)模塊。
testImport.py:
mName = "demo" module = __import__(mName) module.getName()
此時(shí)調(diào)用的是相同目錄下的demo模塊,可順利地獲取這個(gè)模塊,那么當(dāng)不再同一個(gè)目錄下呢?
修改testImport.py:
mName = "lib.test" module = __import__(mName) module.getName()
此時(shí)的運(yùn)行結(jié)果為:
出錯(cuò)提示為,當(dāng)前的模塊'lib'沒(méi)有g(shù)etName()這個(gè)方法,因此沒(méi)有正確獲取到test模塊。
繼續(xù)修改此文件:
mName = "lib.test" module = __import__(mName,fromlist = ('test',)) module.getName()
運(yùn)行結(jié)果為:
當(dāng)加上fromlist屬性即可正確獲取。
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)Python中Importlib與__import__指的是什么大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。