[Python-de] Dynamisch Module Nachladen wenn die Namen erst zur Laufzeit bekannt sind?

Bastian Venthur venthur at debian.org
Do Nov 15 15:52:09 UTC 2007


Super, das geht ja sogar noch viel schneller. Danke!

Gibts jetzt noch was äquivalentes um die gleichnamige Klasse aus dem
Modul zu bekommen?

Angenommen, jedes Modul enthält eine Gleichnamige Klasse (die wie gesagt
alle von der gleichen Klasse abstammen).

Jetzt hab ich das Modul Foo dynamisch geladen, aber wie bekomme ich
dynamisch ein Objekt Foo.Foo ohne exec zu bemühen?


Schöne Grüße,

Bastian

On 15.11.2007 15:20 schrieb Gerald Klix:
> Hi,
> das geht ganz einfach, indem man die eingebaute Funktion __import__ verwendet.
> Es ist sogar so, daß import seinerseits wiederum auf __import__ basiert.
> 
> Siehe: http://docs.python.org/lib/built-in-funcs.html
> 
> 
> HTH,
> Gerald
> 
> Bastian Venthur schrieb:
>> Hi Liste,
>>
>>
>> Was ist der eleganteste Weg um dynamisch Module aus einem Paket
>> nachzuladen wenn die Modulnamen erst zur Laufzeit feststehen?
>>
>> Als uneleganteste Lösung könnte man bei Programmstart alle Module eines
>> Paketes laden (wobei zur Zeit der Programmierung die Namen noch nicht
>> feststehen), also sowas wie
>>
>>   import paket.*                 oder
>>   from paket import *
>>
>> was ja leider nicht geht.
>>
>> Besser wäre wenn bei Nutzereingabe der string genommen wird und sowas wie
>>
>>   from paket import eingabe
>>
>> das könnte man mit exec sicher noch irgendwie machen, aber kennt jemand
>> ne elegantere Lösung?
>>
>> Hintergrund ist eine Nutzanwendung in dem in einem Paket nur Module sind
>> die eine Klasse enthalten die alle von der selben Klasse abgeleitet
>> sind. Je nach Nutzereingabe soll die jeweilige Klasse geladen werden.
>> Sowas wie ein Plugin-System eben. Schön wäre es auch wenn man bei neuer
>> Eingabe das alte Modul wieder entladen könnte...
>>
>>
>> Schöne Grüße,
>>
>> Bastian
>>
> 
> 
> _______________________________________________
> python-de maillist  -  python-de at python.net
> http://python.net/mailman/listinfo/python-de
> 


-- 
Bastian Venthur                                      http://venthur.de
Debian Developer                                 venthur at debian org