Seite 1 von 1

Modulobjekt aus Namen gewinnen

Verfasst: Dienstag 8. Januar 2008, 17:49
von Jan-Peer
Hallo,

folgender Code:

Code: Alles auswählen

import jpm.jpmplugin

a = jpm.jpmplugin.JPMPlugin
'a' enthält also lediglich die Klasse, nicht eine Instanz. Jetzt kann ich mir ja mit a.__module__ den Namen des Moduls ausgeben lassen, in diesem Fall 'jpm.jpmplugin'. Was mich interessiert ist aber eine Referenz auf das Modulobjekt selbst. Wie komme ich da ran?

Vielen Dank schon mal

Verfasst: Dienstag 8. Januar 2008, 18:08
von veers
jpm.jpmplugin ist eine Referenz auf das Modul ;)

Verfasst: Dienstag 8. Januar 2008, 18:18
von Trundle
Und wenn man unbedingt den Namen benutzen will:

Code: Alles auswählen

import sys
module = sys.modules[a.__module__]

Verfasst: Dienstag 8. Januar 2008, 18:25
von Jan-Peer
ja, gut. Aber die kenne ich an der Stelle, wo ich es brauche nicht. Ich importiere verschiedene Module und registriere einige - nicht alle - Klassen daraus in einer Liste. Später habe ich dann den Punkt, daß ich ermittele, welche der registrierten Klassen ich instanziere, und daß ich schauen möchte, ob in dem Modul, wo ich die Klasse hergenommen habe, eine bestimmte andere Klasse existiert.

Das ist hoffentlich etwas klarer (oder auch nicht :roll: )

Verfasst: Dienstag 8. Januar 2008, 18:27
von Jan-Peer
@Trundle

Genau das wollte ich wissen, vielen Dank.

Trotzdem werde ich noch mal ein paar Gedanken an mein Design verwenden. Beim Beschreiben eben kam es mir doch reichlich konfus vor.