Ich muss leider dort etwas abholen und komme da anders wohl nicht rann.
Das Problem ist die dynamik die da drin ist.
Da du den quelltext ja nicht ändern darfst, ist die Lösung über getattr die beste.
Besser wäre, wenn der schreiber des Hauptprogrammes eine vernünftige Schnittstelle für die Pluginschreiber definiert hätte, also du nicht per name an die members des self.start-objektes ranmüsstest, sondern dieses objekt z.B., wie yaho sagt, ein dictionary bereitstellt, was die members enthält.
Allerdings kann ich nicht leugnen das ich ein python anfänger bin und daher eher schlecht als recht meine programmchen zusammenbastle.
Och, so schlimm kanns nicht sein. Du hast erfolgreich der Versuchung widerstanden, in deinem Beispiel über eine Range zu iterieren, und dann per index auf "programmliste" zuzugreifen
Gegenüber meinen Anfängerprogrammen ist das schon Gold.