Я пытаюсь понять причину, почему целый процесс Python не становится уничтоженным, когда я нажимаю Ctrl + C внутри и бесконечный цикл или в этом отношении какая-либо функция Python, которую я выполняю в терминале, и только цикл/функция останавливается?
Это из-за дизайна интерпретатора Python и интерактивной сессии.
Ctrl + C отправляет сигнал, SIGINT, к процессу Python, который интерпретатор Python обрабатывает путем повышения исключения KeyboardInterrupt в под управлением в настоящее время объеме.
Если интерпретатор работает на интерактивной сессии (т.е. путем выполнения python
или python3
в консоли), затем печатается исключение в текущей функции, и Вы возвращаетесь к подсказке Python. Если интерпретатор запускает скрипт (например, python3 my_script.py
), затем если KeyboardInterrupt не обрабатывается сценарием, целая программа остановится, когда исключение будет повышено.