Python importlib模組過載使用方法詳解
阿新 • • 發佈:2020-10-15
模組介紹
Python提供了importlib包作為標準庫的一部分。目的就是提供Python中import語句的實現(以及__import__函式)。另外,importlib允許程式設計師建立他們自定義的物件,可用於引入過程(也稱為importer)。
什麼是imp?
另外有一個叫做imp的模組,它提供給Python import語句機制的介面。這個模組在Python 3.4中被否決,目的就是為了只使用importlib。
瞭解:模組的過載
考慮到效能的原因,每個模組只被匯入一次,放入字典sys.module中,如果你改變了模組的內容,你必須重啟程式,python不支援重新載入或解除安裝之前匯入的模組,
有的同學可能會想到直接從sys.module中刪除一個模組不就可以解除安裝了嗎,注意了,你刪了sys.module中的模組物件仍然可能被其他程式的元件所引用,因而不會被清楚。
特別的對於我們引用了這個模組中的一個類,用這個類產生了很多物件,因而這些物件都有關於這個模組的引用。
如果只是你想互動測試的一個模組,使用 importlib.reload(),e.g. import importlib; importlib.reload(modulename),這隻能用於測試環境。
例子
aa.py
def func1(): print('func1')
test.py
import time,importlib import aa time.sleep(10) # importlib.reload(aa) 用於模組重新載入 aa.func1()
在10秒的等待時間裡,修改aa.py中func1的內容,等待test.py的結果。
開啟importlib註釋,重新測試
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。