Какая разница между exit(0)
и exit(1)
в Python?
Я попытался оглянуться, но не нашел конкретного вопроса в этих строках. Если он уже был дан ответ, ссылка будет достаточной.
Какая разница между exit(0)
и exit(1)
в Python?
Я попытался оглянуться, но не нашел конкретного вопроса в этих строках. Если он уже был дан ответ, ссылка будет достаточной.
0 и 1 - коды выхода.
exit(0)
означает чистый выход без ошибок/проблем
exit(1)
означает, что была проблема с проблемой/ошибкой/проблемой, поэтому программа выходит.
Это не специфичный для Python и довольно распространенный. Код ненулевого выхода рассматривается как ненормальный выход, а иногда код ошибки указывает на то, что проблема была. Нулевой код ошибки означает успешный выход.
Это полезно для других программ, оболочки, вызывающего и т.д., чтобы узнать, что произошло с вашей программой, и действовать соответственно.
Это определяет статус выхода программы при завершении работы (как правило, 0 для успеха и 1 для ошибки).
Он не уникален для Python, и точный эффект зависит от вашей операционной системы и от того, как вызывается программа (хотя в 99% случаев, если вы просто запускаете скрипты Python, это не имеет значения).
Стандартное соглашение для всех программ на C, включая Python, предназначено для exit(0)
для указания успеха и exit(1)
или любого другого ненулевого значения (в диапазоне 1..255) для указания отказа. Любое значение вне диапазона 0..255 обрабатывается по модулю 256 (статус выхода сохраняется в 8-битном значении). Иногда это будет обрабатываться как подписанное (так что вы можете увидеть -128, -127 и т.д.), Но чаще это обрабатывается как unsigned.
Этот статус доступен для кода, вызывающего Python. Это соглашение применяется на разных платформах, хотя значение ненулевого статуса выхода может меняться на разных платформах.
Число, которое вы передаете функции exit()
, - это просто код возврата программы, который предоставляется операционной системе. С вашей программной точки зрения нет разницы: выполнение будет завершено в обоих случаях, а значение, предоставленное функции, будет предоставлено ОС. Но некоторые инструменты и скрипты учитывают код выхода программы. Большинство инструментов возвращают 0, когда они преуспевают и отличные от нуля, чтобы указать ошибку.
Итак, если ваша программа будет запущена из script, автоматического инструмента или из другого программного обеспечения, которое учитывает код возврата (например, IDE), вы должны быть осторожны с тем, что вы возвращаете.
Если вы сомневаетесь, просто верните 0, чтобы указать, что все в порядке.
exit(0)
: это приводит к завершению работы программы с успешным завершением.
exit(1)
: это приводит к выходу программы с системным значением.
Во многих системах exit(1)
сигнализирует о каком-то сбое, однако
не является гарантией.
Насколько я помню, стандарт C распознает только три стандартных выхода значения:
EXIT_SUCCESS
- успешное завершениеEXIT_FAILURE
- неудачное завершение0
- то же, что и EXIT_SUCCESS