Ano*_*ith 7 command-line process signal
我试图理解为什么当我在无限循环中按 Ctrl + C 时整个 Python 进程不会被终止,或者就我在终端中运行的任何 Python 函数而言,只有循环/函数被停止?
这是因为Python解释器和交互会话的设计。
Ctrl + C 向 Python 进程发送信号SIGINT ,Python 解释器通过在当前运行的作用域中引发KeyboardInterrupt 异常来处理该信号。
如果解释器在交互式会话中运行(即通过运行python或python3在控制台),则会打印当前函数中的异常,并且返回到 Python 提示符。如果解释器正在运行脚本(例如通过python3 my_script.py),那么除非脚本处理 KeyboardInterrupt,否则当引发异常时整个程序将停止。