How to Implement the Observer Pattern in Python?
How to Implement the Observer Pattern in Python?
How to Implement the Observer Pattern in Python?
What is the observer design pattern, and how can it be implemented in Python?
solveurit24@gmail.com Changed status to publish February 20, 2025
The observer pattern defines a one-to-many dependency between objects so that when the subject changes, all its dependents are notified automatically. Here’s an example:
class Subject:
def __init__(self):
self.observers = []
def attach(self, observer):
self.observers.append(observer)
def detach(self, observer):
self.observers.remove(observer)
def notify(self):
for observer in self.observers:
observer.update(self)
class Observer:
def update(self, subject):
pass
class ConcreteSubject(Subject):
def __init__(self):
super().__init__()
self._state = 0
@property
def state(self):
return self._state
@state.setter
def state(self, value):
self._state = value
self.notify()
class ConcreteObserver(Observer):
def update(self, subject):
print(f"Observer: Subject's state changed to {subject.state}")
subject = ConcreteSubject()
observer1 = ConcreteObserver()
observer2 = ConcreteObserver()
subject.attach(observer1)
subject.attach(observer2)
subject.state = 10solveurit24@gmail.com Changed status to publish February 20, 2025