2010-12-19 4 views
6

변수에 대해 gobject.io_add_watch과 유사한 기능이 필요합니다. 예를 들어 변수 stopstop = False으로 초기화 된 것을보고 중지가 True으로 변경되면 함수를 호출해야합니다. 나는 별도의 스레드가 time.sleep 루프에서 변수를보고 가질 수 없습니다.변경 사항보기

이와 같은 기능이나 방법이 있습니까?

+2

그냥 .stop'가진()'그 일을 좀 더 설명하고 논리적 인 방법이 될 것입니다; "멈춤"은 당신이하는 일이며 값 비싼 행동을 촉발시키는 반면 변수를 설정하는 것은 일반적으로 싸다. (나는이 유스 케이스에서는 사람들이해야 할 일을 깨달아야하지만 원칙은 깨닫는다.) 'x.stop()'과'x.start()'는'x.stop = True'와'x.stop = False' 또는'x.running = False'와'x.running = True' 또는 등가물. –

+0

나는 그것을하는 방법을 보여 주었지만, 나는 이것에 관해 당신에게 동의한다. 확실히이 기술에는 다른 더 나은 응용 프로그램이 있습니다. :) –

답변

17

클래스에 property를 사용

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() 
+0

+1 : 좋은 유스 케이스. –

+0

굉장히 감사합니다. – Nolhian

관련 문제