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]
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