[Python-de] dynamisch Klassen instanziieren

Andreas Pakulat apaku at gmx.de
Die Jan 24 01:53:35 CET 2006


Hi,

ich moechte eine Art Plugin-Mechanismus mit Python realisieren, wobei
die Plugins als Module in einem vordefinierten Package liegen. Ich hab
sowohl den Namen des Modules, als auch den der Klasse in einer Liste im
Package definiert. 

Die Frage ist: Welche Funktionen/Module von Python koennen mir da
helfen? Ein naiver Ansatz mit

modul = getattr(package, 'modulname')
clazz = getattr(modul, 'Klassenname')
obj = clazz

scheitert schon an der 1. Zeile. 

Gibts bessere Vorschlaege um "dynamisch" Klassen zu laden und zu
instanziieren? Eine vollautomatische Loesung bei der die gesuchten
Klassen eine bestimmte Basisklasse haben ist (momentan) noch nicht
noetig, es reicht wenn ich mit Modul+Klassenname eine Instanz erzeugen
kann.

Andreas

-- 
You are dishonest, but never to the point of hurting a friend.