我是否可以在继续处理的同时使用中断来打印状态?

dru*_*rum 0 python interrupt

在python中,是否可以使用KeyboardInterrupt或CTRL + C来打印状态消息,可能像打印变量的内容然后继续执行?或者Interrupts会不会杀死这个过程?

我想做的一个例子:

def signal_handler(signum, frame):
    global interrupted
    interrupted = True

while true:
   update(V)
   if interrupted:
      print V
Run Code Online (Sandbox Code Playgroud)

kin*_*all 5

您可以使用信号处理程序执行此操作:

import signal

def sigint_handler(signum, frame):
     print "my_variable =", frame.f_locals.get("my_variable", None)

signal.signal(signal.SIGINT, sigint_handler)
Run Code Online (Sandbox Code Playgroud)

现在,中断脚本会调用处理程序,该处理程序打印变量,将其从当前堆栈帧中捕获.然后脚本继续.