当我按下 Ctrl-C 时,以下代码立即终止。
但是,似乎循环应该在 10 秒延迟后退出 - 因为它不会检查状态,keep_going
直到我们到达循环的顶部。为什么这段代码会立即退出循环?
我如何确保循环在退出之前完成执行?
import signal
import time
keep_going = True
def signal_handler(signal, frame):
global keep_going
print 'quitting!'
keep_going = False
signal.signal(signal.SIGINT, signal_handler)
while keep_going:
print 'looping...'
time.sleep(10)
print 'bye!'