[Python-de] Add-On's

Christopher Arndt chris.arndt at web.de
So Feb 17 01:16:02 UTC 2008


Roland M. Kruggel schrieb:
> Ja, im Prinzip hast du recht. Ich möchte jedoch erreichen, dass der 
> EndUser nicht den Quellcode anfassen muss. Ich will das Plug-In 
> (Add-on, oder wie immer man es auch nennt) z.B. einfach in ein 
> definiertes Verzeichniss copieren und die Anwendung soll es dort 
> finden und in die Applikation einbinden.

Ganz generell gesagt, gibt es zwei Aspekte, die bei Plug-ins von Belang
sind:

- Wie findet & lädt die Applikatiom Plug-ins? (dazu gibt es z.B. die
schon genannte Lösung mit setuptools)

- Wie delegiert die Applikation bestimmte Aufgaben an Plug-ins?

Für Letzteres musst du Dir schon selbst eine Schnittstellendefinition
überlegen. Wie die aussieht, kommt ganz auf den Einsatzzweck an. Für das
von dir genannte Beispiel einer Datanbankschnittstelle könnte das z.B.
so aussehen, dass du definierst, dass ein Plug-in Methoden für folgende
Funktionen bereitstellen muss.

- Stelle eine Datenbankverbindung her
- Führe ein SQL Statement aus
- Liefere die Ergebnisse des letzten Statements (oder einen Teil davon)
zurück
- usw.

Für jede dieser Methoden musst du Name, Parameter und Rückgabewerte
festlegen.

Andere Anwendungsfälle sind u.U. etwas einfacher. Stelle dir z.B. ein
Plug-in für eine Bildverarbeitungssoftware vor, das einen Filter für
eine Bild implementiert. So ein Plug-in wird wahrscheinlich nur eine
Funktion implementieren müssen, die die Bilddaten entgegen nimmt und die
veränderten Daten wieder zurück liefert.

Ich kann mich also nur meinem Vorposter Kristian anschließen: dein
Problem ist nicht Python-spezifisch, sondern du musst dir erst einmal
grundsätzliche Gedanken über Softwaredesign und den Aufbau deiner
Anwendung machen.

Chris