2016-11-08 1 views
1

Diese Frage wurde als duplicate markiert. Allerdings beschäftigt sich die duplicate Fragen mit Modulen, während meine Frage fragt, wie Sie Teile des Moduls importieren.importieren Sie nur einige Teile eines Moduls, aber listet diese Teile als Strings auf

Ich weiß, dass ich bestimmte Teile des Moduls importfrom mymodule import myfunction verwenden kann. Was, wenn mehrere Dinge importiert werden sollen, aber ich muss sie als Strings auflisten. Zum Beispiel:

import_things = ['thing1', 'thing2', 'thing2'] 
from mymodule import import_things 

Ich fragte this question, aber es sieht aus wie ich den Trick verwenden muß für meinen Code als auch oben (falls vorhanden).

Jede Hilfe wird geschätzt.

Antwort

3
import importlib 

base_module = importlib.import_module('mymodule') 
imported_things = {thing: getattr(base_module, thing) for thing in import_things} 

imported_things['thing1']() # Function call 

Wenn Sie die Dinge zu nutzen, um der Lage sein, die global importiert wurden, dann tun:

globals().update(imported_things) 
thing1() # function call 

die Importe zu entfernen, können Sie

del thing1 

oder

tun
del globals()['thing1'] 

Eine weitere nützliche Operation Sie tun können ist reload ein Modul

+0

Dies importiert Module aus dem Paket. Ich brauche die Fähigkeit, Methoden und Klassen aus dem Modul zu importieren. – flashburn

+0

@flashburn aktualisiert meine Antwort – smac89

+0

Eine andere Frage. Wie würde ich sie unwichtig machen? Gibt es einen Weg, es zu tun? – flashburn

Verwandte Themen