在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)
您可以使用信号处理程序执行此操作:
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)
现在,中断脚本会调用处理程序,该处理程序打印变量,将其从当前堆栈帧中捕获.然后脚本继续.