I know I know the Observer Pattern. I just wanted to be sure what was the best practice in Python. I found this:
Risky Implementations: If the pattern is not implemented carefully, there are huge chances that you will end up with large complexity code.
From https://www.geeksforgeeks.org/observer-method-python-design-patterns/

With all the complex code out there having “risky implementations” the observer pattern is one of the mildest.