Heim >Backend-Entwicklung >Python-Tutorial >Warum kann „__import__' Submodule in Python nicht vollständig importieren und wie kann ich das beheben?
In Python spielt das Importieren von Modulen eine entscheidende Rolle bei der Organisation und Wiederverwendung von Code. Wenn Sie jedoch versuchen, ein Submodul aus einer String-Variablen mithilfe der Funktion import zu importieren, können rätselhafte Ergebnisse auftreten.
Problem:
Bedenken Sie Folgendes Folgender Code:
import matplotlib.text as text x = dir(text) i = __import__('matplotlib.text') y = dir(i) j = __import__('matplotlib') z = dir(j)
Der Vergleich der drei Listen x, y und z zeigt unerwartete Unterschiede. Insbesondere fehlen in Liste y Informationen zu den Hauptklassen aus dem Untermodul matplotlib.text, das in Liste x vorhanden ist.
Lösung:
Der ImportFunktion erfordert sorgfältiges Verständnis. Durch Hinzufügen eines leeren String-Arguments zum fromlist-Parameter können wir angeben, dass wir das Submodul selbst importieren möchten:
i = __import__('matplotlib.text', fromlist=[''])
Jetzt verweist die Variable i auf das matplotlib.text-Submodul und list y enthält das gewünschte Informationen.
Alternativ können wir ab Python 3.1 die importlib verwenden Paket:
import importlib i = importlib.import_module("matplotlib.text")
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWarum kann „__import__' Submodule in Python nicht vollständig importieren und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!