1. 程式人生 > 程式設計 >Python importlib模組過載使用方法詳解

Python importlib模組過載使用方法詳解

模組介紹

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註釋,重新測試

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。