在Python中,導入模組在組織和重用程式碼方面起著至關重要的作用。但是,當嘗試使用 import 函數從字串變數匯入子模組時,可能會出現令人費解的結果。
問題:
考慮以下程式碼:
import matplotlib.text as text x = dir(text) i = __import__('matplotlib.text') y = dir(i) j = __import__('matplotlib') z = dir(j)
比較三個清單 x、y 和 z 會發現意外的結果差異。具體來說,列表 y 缺少有關 matplotlib.text 子模組中主要類別的信息,該子模組存在於列表 x 中。
解決方案:
導入 功能需要仔細理解。透過在 fromlist 參數中新增一個空字串參數,我們可以指定要導入子模組本身:
i = __import__('matplotlib.text', fromlist=[''])
現在,變數 i 將引用 matplotlib.text 子模組,列表 y 將包含想要的資訊。
或者,從Python 3.1開始,我們可以使用importlib package:
import importlib i = importlib.import_module("matplotlib.text")
附加說明:
以上是為什麼 Python 中的 __import__` 無法完全導入子模組,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!