How to Implement the Observer Pattern in Python?

77 views

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
0

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 = 10

solveurit24@gmail.com Changed status to publish February 20, 2025
0
You are viewing 1 out of 1 answers, click here to view all answers.