Skip to content

Instantly share code, notes, and snippets.

@DataGreed
Created November 24, 2015 13:12
Show Gist options
  • Save DataGreed/566e38399814d702ea90 to your computer and use it in GitHub Desktop.
Save DataGreed/566e38399814d702ea90 to your computer and use it in GitHub Desktop.
class MulticastDelegate:
def __init__(self):
self.delegates = []
def add(self, delegate):
self.delegates.append(delegate)
def sub(self, delegate):
self.delegates.remove(delegate)
def __iadd__(self, delegate):
self.add(delegate)
return self
def __isub__(self, delegate):
self.sub(delegate)
return self
def __call__(self, *args, **kwargs):
for d in self.delegates:
d(*args, **kwargs)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment