class Changable: def __init__(self): self.listeners = [] def add_listener(listener): self.listeners.append(listener) def change(): for listener in self.listeners: listener.on_change(self) class Class1: def __init__(self, changable): changable.add_listener(self) def on_change(changable): pass changable = Changable() obj1 = Class1(changable) obj2 = Class1(changable) changable.change()