Sie können den vollständig qualifizierten Klassennamen eines Python-Objekts wie folgt erhalten (siehe diese Frage ):
%Vor% Wie machen Sie das Inverse, dh ordnen Sie einen vollständig qualifizierten Klassennamen wie 'Queue.PriorityQueue'
dem zugehörigen Klassenobjekt ( Queue.PriorityQueue
) zu?
Sie können importlib in 2.7 verwenden:
%Vor% In älteren Versionen können Sie die Funktion __import__
verwenden. Standardmäßig wird die oberste Ebene eines Paketimports zurückgegeben (z. B. xml
). Übergeben Sie jedoch eine nicht leere fromlist
, wird stattdessen das benannte Modul zurückgegeben:
Bezeichner in Python sind nicht wirklich so zu verwenden, aber mit sys.modules
und __import__
können Sie erreichen, was Sie wollen.
Dies schlägt fehl, wenn sich das Modul in einem Paket befindet, das es nicht als Teil von __ALL__
importiert. Dies ist möglich zu beheben, aber es erfordert eine ausführlichere Verwendung von __import__
.
Tags und Links python introspection