Pluginsystem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Wie ist ein gutes Plugin-System aufgebaut? Und wie wird es implementiert?
Das einfachste was mir einfällt ist sowas:

Code: Alles auswählen

# main
import imp

class Foo(object):
     def __init__(self):
         self.funcs = []

     def load_plugin(self, name):
         fp, pathname, description = imp.find_module(name)
         imp.load_module(name, fp, pathname, description)
         self.funcs.extend(my_plugin.funcs)

     def call_em(self):
         for func in self.funcs:
             func(self, 'weitere args')

Code: Alles auswählen

# my_plugin

def bar(cls, arg):
    print cls, arg

funcs  = [bar]
Finde ich nicht wirklich sehr schön und brauchbar ...

Oder wie es weechat macht: http://www.weechat.org/scripts/source/s ... z.py.html/
Allerdings ist mir unklar wie man sowas bewerkstelligen könnte, desweiteren würde das auch vorraussetzen, dass das Programm auf Modulebene abläuft, oder?

Ich hoffe ihr könnt mir da weiterhelfen

//Edit: mal Beispiel erweitert
the more they change the more they stay the same
Antworten