コードを見てみましょう。タイマーが終了したら、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
ご覧のとおり、この関数を使用しover()
て while ループを停止しようとしています。現在、時間が止まると over が false として返されますが、while ループには影響しません。私は何か間違ったことをしているに違いない。
オブジェクトでできることTimer
は、関数 param を渡して、タイマーが終了したときにその関数を呼び出すことですover()
。return のようover()
にFalse
、リアルタイムで while ループに直接影響を与えることはありません。暗黙的while
に false にするためにコールバックが必要ですか、それとも私の停止方法が完全に間違っていて機能しませんか。