Dynamisches Importieren von Modulen mithilfe von String-Modulnamen
In Python ist es möglich, Anwendungen durch dynamisches Importieren von Modulen zu erweitern. Eine Anwendung dieser Technik besteht darin, Befehle aus einem String-Argument auszuführen und so erweiterbare Module zu ermöglichen, ohne den Hauptcode zu ändern.
Mit der Funktion __import__() können Sie Module importieren, die durch ihre String-Namen angegeben werden. Für einen idiomatischeren Ansatz sollten Sie jedoch die Verwendung des Moduls importlib in Betracht ziehen.
Für Python 2.7 und 3.1 und höher stellt importlib die Funktion import_module() bereit:
importlib.import_module(name, package=None)
Diese Funktion importiert die angegebenen Modul, das über seinen absoluten oder relativen Namen referenziert werden kann. Wenn der Name relativ ist, sollte das Paketargument den Anker zum Auflösen des Namens angeben. Zum Beispiel:
my_module = importlib.import_module('os.path')
Im bereitgestellten Beispiel besteht das Ziel darin, ein Befehlsmodul basierend auf einem Zeichenfolgenargument zu importieren. Mit importlib können Sie den Code wie folgt verfeinern:
import importlib command = sys.argv[1] try: command_module = importlib.import_module("myapp.commands." + command) except ImportError: # Display error message command_module.run()
Diese Lösung bietet eine präzisere und idiomatischere Möglichkeit, Befehlsmodule dynamisch zu importieren, ohne den Kernanwendungscode zu ändern, und ermöglicht so eine einfache Erweiterbarkeit.
Das obige ist der detaillierte Inhalt vonWie kann ich Python-Module mithilfe ihrer String-Namen dynamisch importieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!