Skip to content

Instantly share code, notes, and snippets.

@EntityReborn
Created April 13, 2011 01:09
Show Gist options
  • Save EntityReborn/916777 to your computer and use it in GitHub Desktop.
Save EntityReborn/916777 to your computer and use it in GitHub Desktop.
from collections import defaultdict
class Manager(object):
def __init__(self):
self.triggers = defaultdict(list) # event: [func, ]
def register(self, *events):
def register_for_event(func):
for event in events:
self.triggers[event.lower()].append(func)
return func
return register_for_event
def trigger_event(self, event, *args):
for trig in self.triggers[event.lower()]:
trig(*args)
manager = Manager()
class MyClass(object):
def __init__(self):
self.text = "Testing"
@manager.register("TEST")
def test(self, something):
print self.text, something
klass = MyClass()
manager.trigger_event("TEST", "1 2 and 3")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment