0
나는 타이머를 끝내면 while 루프를 멈추려 고합니다. 그렇게 할 수있는 방법이 있습니까? 카운트 다운 타이머를 사용하여 while 루프에서 빠져 나와 파이썬
from threading import Timer
def run(timeout=30, runs):
timer(timeout)
while runs > 0 or over():
#Do something
print "start looping"
def timer(time):
t = Timer(time, over)
print "timer started"
t.start()
def over():
print "returned false"
return False
당신이 볼 수 있듯이
, 내 While 루프를 정지하는 기능over()
를 사용하는 것을 시도하고있다. 현재 시간이 멈 추면 over는 false로 반환되지만 while 루프에는 영향을주지 않습니다. 나는 틀린 일을해야만합니다.
그래서 Timer
객체는 함수 param을 전달하여 타이머가 끝나면 함수 over()
을 호출하도록 허용합니다. over()
은 False
을 반환하므로 실시간으로 while 루프에 직접 영향을 미치지 않습니다. 암시 적으로 while
을 false로 설정하는 콜백이 필요하거나 중단하는 방법이 completly 잘못되어 작동하지 않습니다. over
가 호출 될 때, 그것은 True
가 반환되도록