Почему делает Ctrl + C не, уничтожают Python, работающий в терминале?

Я пытаюсь понять причину, почему целый процесс Python не становится уничтоженным, когда я нажимаю Ctrl + C внутри и бесконечный цикл или в этом отношении какая-либо функция Python, которую я выполняю в терминале, и только цикл/функция останавливается?

1
задан 31 March 2020 в 22:53

1 ответ

Это из-за дизайна интерпретатора Python и интерактивной сессии.

Ctrl + C отправляет сигнал, SIGINT, к процессу Python, который интерпретатор Python обрабатывает путем повышения исключения KeyboardInterrupt в под управлением в настоящее время объеме.

Если интерпретатор работает на интерактивной сессии (т.е. путем выполнения python или python3 в консоли), затем печатается исключение в текущей функции, и Вы возвращаетесь к подсказке Python. Если интерпретатор запускает скрипт (например, python3 my_script.py), затем если KeyboardInterrupt не обрабатывается сценарием, целая программа остановится, когда исключение будет повышено.

1
ответ дан 7 April 2020 в 23:23

Другие вопросы по тегам:

Похожие вопросы: