Python Importlib模塊與__import__詳解


Importlib模塊與__import__都可以通過過字符串來導入另外一個模塊,但在用法上和本質上都有很大的不同。

以一個例子為證:

以下為我的工程目錄結構:

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的一個庫,通過導入importlib,調用import_module()方法,傳入用戶想要獲取的模塊對應的路徑字符串,即可獲取一個,模塊module,module可以調用這個test模塊下的所有屬性和方法。

運行截圖:

 

 

__import__的例子:
__import__是python的一個內置方法,直接調用__import__()即可獲取一個模塊.

testImport.py:

mName = "demo"

module = __import__(mName)
module.getName()

此時調用的是相同目錄下的demo模塊,可順利地獲取這個模塊,那么當不再同一個目錄下呢?

修改testImport.py:

mName = "lib.test"

module = __import__(mName)
module.getName()

此時的運行結果為:

 

 

出錯提示為,當前的模塊'lib'沒有getName()這個方法,因此沒有正確獲取到test模塊。

繼續修改此文件:

mName = "lib.test"

module = __import__(mName,fromlist = ('test',))
module.getName()

運行結果為:

當加上fromlist屬性即可正確獲取。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM