When to use weak references in Python?
Events are a common scenario for weak references. Problem Consider a pair of objects: Emitter and Receiver. The receiver has shorter lifetime than the emitter. You could try an implementation like this: class Emitter(object): def __init__(self): self.listeners = set() def emit(self): for listener in self.listeners: # Notify listener(‘hello’) class Receiver(object): def __init__(self, emitter): emitter.listeners.add(self.callback) def … Read more