В чем разница между sys.exit(0) и os._exit (0)
Пожалуйста, помогите мне в разъяснении концепции этих двух операторов python с точки зрения разницы в функциональности:
Ответы
Ответ 1
В соответствии с документацией:
os._exit():
Выйти из процесса со статусом n, не вызывая обработчики очистки, сброс буферов stdio и т.д.
Примечание Стандартный способ выхода - sys.exit(n)
. _exit()
обычно должен использоваться только в дочернем процессе после fork()
.
Ответ 2
os._exit
вызывает функцию C _exit()
, которая выполняет немедленную программу
прекращение. Обратите внимание, что оператор "никогда не может вернуться".
sys.exit()
идентичен raise SystemExit()
. Он поднимает Python
исключение, которое может быть уловлено вызывающим абонентом.
Оригинальное сообщение: http://bytes.com/topic/python/answers/156121-os-_exit-vs-sys-exit