使用一次后禁用KeyboardInterrupt

时间:2016-10-20 11:12:35

标签: python python-3.x keyboardinterrupt

Cont = 1
while Cont == 1:
    try:
        while Cont == 1:
            counter = counter + 0.1
            counter = round(counter, 1)
            print(counter)
            time.sleep(0.1)
            if counter == crashNumber:
                Cont = 0
    except KeyboardInterrupt:
        Multiplier = counter

此处计数器将继续计数unitl它到达crashNumber,当按下 Ctrl + C 时,它将取{ {1}}用于counter以后使用它。

但是我只想让用户有机会按此一次,然后禁用它。有什么方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:1)

无论您是否需要,都会抛出KeyboardInterrupt异常:然后,解决方案是在except块中以不同方式处理异常。我选择的实现将使用一个简单的布尔值,该值以True开头,并在第一次中断时设置为False

import time

allow_interrupt = True
while True:
    try:
        time.sleep(1)
        print ('...')
    except KeyboardInterrupt:
        if allow_interrupt:
            print ('interrupted!')
            allow_interrupt = False

如果这解决了您的使用案例,请告诉我。