Wie ordnen Sie seinem Klassenobjekt in Python einen vollständig qualifizierten Klassennamen zu?

8

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?

    
Jim Ferrans 28.08.2011, 03:25
quelle

3 Antworten

10

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:

%Vor%     
eryksun 28.08.2011, 06:10
quelle
1

Für Python 2.6 / 2.7

%Vor%     
t w 28.08.2011 07:23
quelle
0

Bezeichner in Python sind nicht wirklich so zu verwenden, aber mit sys.modules und __import__ können Sie erreichen, was Sie wollen.

%Vor% Beispiel Verwendung %Vor%

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__ .

    
Jeremy Banks 28.08.2011 03:39
quelle

Tags und Links