我只是想在 Python 中实现一个简单的观察者模式并且遇到了一个问题。这是我的代码:
class Observable:
def __init__(self):
self.__observers = []
def register_observer(self, observer):
self.__observers.append(observer)
def notify_observers(self, data):
for observer in self.__observers:
observer.notify(self, data)
class Observer:
def __init__(self, observable):
observable.register_observer(self)
self.data_present = False
self.data = ''
def notify(self, observable, data):
self.data_present = True
self.data = data
def wait(self):
while True:
if not self.data_present:
time.sleep(5)
else:
break
return self.data
在这里,我想消除 Observer.wait() 中的忙碌等待(行 time.sleep(5)。我怎样才能向这个函数发出信号?