class Observable(object):

    def __init__(self, value):
        self.value = value
self.observers = weakref.WeakKeyDictionary()

def set(self, value):
    old = self.value
self.value = value
self.notifyObservers(old, self.value)

def get(self):
    return self.value

def addObserver(self, o):
    self.observers[o] = 1

def removeObserver(self, o):
    del self.observers[o]

def notifyObservers(self, old, new):
    for o in self.observers:
        o.valueChanged(old, new)
как правильно реализовать Observer в python, когда наблюдатель [должен быть] уничтожен