I want to implement the Observable
pattern in Python for a couple of workers, and came across this helpful snippet:
class Event(object):
pass
class Observable(object):
def __init__(self):
self.callbacks = []
def subscribe(self, callback):
self.callbacks.append(callback)
def fire(self, **attrs):
e = Event()
e.source = self
for k, v in attrs.iteritems():
setattr(e, k, v)
for fn in self.callbacks:
fn(e)
Source: Here
As i understand it, in order to subscribe
, I would need to pass a callback to the function that is going to be called on fire
. If the calling function was a class
method, presumably I could have used self
, but in the absence of this - how could I directly get a callback that can be useful for the self.callbacks.append(callback)
bit?