Heim >Backend-Entwicklung >Python-Tutorial >Wie unterscheiden sich „__import__' und „importlib.import_module' beim Importieren von Modulen aus Strings in Python?

Wie unterscheiden sich „__import__' und „importlib.import_module' beim Importieren von Modulen aus Strings in Python?

Linda Hamilton
Linda HamiltonOriginal
2024-12-06 09:08:15196Durchsuche

How Do `__import__` and `importlib.import_module` Differ When Importing Modules from Strings in Python?

Unterschiedliche Ergebnisse mit „__import__“ und Import-Anweisung zum Importieren von Modulen aus Strings

Bei der Arbeit mit verschachtelten Bibliotheken besteht eine häufige Aufgabe darin, Submodule mithilfe einer String-Variablen dynamisch zu importieren als Importpfad. Allerdings kann die Funktion „__import__“ im Vergleich zu einer typischen Importanweisung zu anderen Ergebnissen führen.

In Ihrem Beispiel, wenn Sie „__import__“ verwenden, ohne das Argument „fromlist“ anzugeben:

i = __import__('matplotlib.text')

Das importierte Modul enthält sowohl das Basismodul matplotlib als auch etwas Zusätzliches. Um das Untermodul matplotlib.text gezielt zu importieren, können Sie den Code wie folgt ändern:

i = __import__('matplotlib.text', fromlist=[''])

In Python 3.1 oder höher können Sie auch das Modul importlib verwenden:

import importlib

i = importlib.import_module("matplotlib.text")

Hier sind ein paar zusätzliche Hinweise, die Sie beachten sollten:

  • Für den Import von Modulen aus Unterordnern sollte der Importpfad entsprechend angegeben werden. Um beispielsweise email.py aus dem Feature-Unterordner zu importieren, verwenden Sie:
importlib.import_module("feature.email")
  • Vor Python 3.3 war es obligatorisch, eine __init__.py-Datei in dem Ordner zu haben, der Folgendes enthielt das Modul, das importiert wird. Dies ist ab Python 3.3 nicht mehr erforderlich.

Das obige ist der detaillierte Inhalt vonWie unterscheiden sich „__import__' und „importlib.import_module' beim Importieren von Modulen aus Strings in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Einige QtGui-StrukturenNächster Artikel:Einige QtGui-Strukturen