Ich versuche, die Mitglieder eines Moduls zu importieren, dessen Name nicht bekannt ist. Anstelle von
%Vor%Ich verwende:
%Vor% Wie kann ich eine ähnliche Sache für den Fall from foo import bar
erreichen, anstatt auf ein "eval" zurückzugreifen?
Update: Es scheint, dass fromlist
den Trick gemacht hat. Gibt es eine Möglichkeit, from foo import *
zu emulieren? fromlist=['*']
hat den Trick nicht gemacht.
Sie können den Import dynamisch mit Hilfe von __import__
durchführen. Es gibt fromlist
Schlüsselargument in __import__
, um from foo import bar
aufzurufen.
Manchmal möchten Sie eine von vielen Konfigurationsdateien importieren, von denen jede verschiedene Werte für die gleichen benannten Variablen, DICTs usw. hat.
Sie können das nicht einfach tun:
%Vor%Die Erklärung, warum dies nicht funktioniert, liegt über meiner Gehaltsstufe und schließt Schließungen und Namespaces ein. Was ich gefunden habe, war, die mother-Funktion mit 'module_name' als Zeichenfolgenargument aufzurufen und dann die betreffende Variable dynamisch zu importieren, wenn ich sie wirklich brauchte:
%Vor%Bingo .... Sie haben einen dynamischen Import aller gewünschten Variablen von einem importierten Modul zur Laufzeit.