Callback System

Code-Stücke können hier veröffentlicht werden.
Antworten
Crazed
User
Beiträge: 171
Registriert: Sonntag 18. Mai 2008, 11:44

Hey,
Ich hielt es für ganze interessant sowas zu machen:

Code: Alles auswählen

#!/usr/bin/python

class CommandParser(object):
    def __init__(self):
        self.callbacks = {}
        
    def register_callback(self, command, callback):
        self.callbacks[command] = callback
        
    def parse(self, string):
        tokens = string.split()
        command = tokens[0]
        
        if self.callbacks.has_key(command):
            self.callbacks[command](tokens[1:])
            print
            
parser = CommandParser()

##############################################################################
#Define Callbacks:
def add(tokens):
    print int(tokens[0]) + int(tokens[1])

#Register Callbacks:
parser.register_callback('add', add)


##############################################################################

command = None
while command != 'exit':
    command = str(raw_input(''))
    
    if command != '':
        parser.parse(command)
Die py-irclib benutzt glaube ich so ein ähnliches System um Aufrufe an bestimmte von dir definierte Funktionen zu machen wenn ein besonderes Ereigniss eintritt.

So kann man sich seine eigene kleine "Environment" schreiben in dem man einfach seine python scripte/funktion alles andere aufrufen kann.

Man könnte auch ein config.py importieren in dem ein dictionary namens settings importiert ist etc. Je nachdem was man damit vorhat.

Und richtig cool ist es dann wenn man es in Zusammenhang mit xmlrpclib benutzt und es fernsteuern kann ;). Und dynamische Module nachladen... bla bla ^^

Ihr wisst wodrauf ich rauswill ^^. *verspielt ist*

MfG,
CracKPod
Antworten