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!