The Listener That Vanished
class Bus:
def __init__(self):
self.subs = []
def on(self, fn):
self.subs.append(fn)
def off(self, fn):
self.subs.remove(fn)
def emit(self, ev):
for fn in self.subs:
fn(ev)
bus, log = Bus(), []
def a(ev): log.append("a")
def b(ev): log.append("b"); bus.off(b) # one-shot subscriber
def c(ev): log.append("c")
bus.on(a); bus.on(b); bus.on(c)
bus.emit("tick")
print(log)
What is printed?
Sign in to answer questions and track your progress
Sign In