首頁 >後端開發 >Python教學 >為什麼 Python 中的 __import__` 無法完全導入子模組,如何修復?

為什麼 Python 中的 __import__` 無法完全導入子模組,如何修復?

Susan Sarandon
Susan Sarandon原創
2024-12-03 03:37:09988瀏覽

Why Does `__import__` Fail to Fully Import Submodules in Python, and How Can I Fix It?

了解import子模組載入函數

在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")

附加說明:

  • 從子文件夾匯入檔案時,請使用下列語法: importlib.import_module("feature.email ")
  • 在 3.3 之前的 Python 版本中,從沒有__init__.py 檔案不可能。

以上是為什麼 Python 中的 __import__` 無法完全導入子模組,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn