观察属性的变化
我需要一个功能,类似于 gobject.io_add_watch
,但是是用来监视一个变量的。例如,它需要监视一个名为 stop
的变量,这个变量初始化为 stop = False
,当 stop
被改成 True
时,它必须调用一个函数。我不能用一个单独的线程在循环中监视这个变量,也不能用 time.sleep
。
有没有这样的函数或者方法呢?
1 个回答
21
在一个类里面使用 属性:
class Stopwatch(object):
def __init__(self, callback):
self._stop = False
self.callback = callback
@property
def stop(self): return self._stop
@stop.setter
def stop(self, value):
self._stop = value
if value: self.callback()