Разница между выходом (0) и выходом (1) в Python
В чем разница между exit(0)
а также exit(1)
в питоне?
Я попытался осмотреться, но не нашел конкретного вопроса по этим вопросам. Если ответ уже получен, ссылки будет достаточно.
6 ответов
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 и т. Д.), Но чаще это считается неподписанным.
Этот статус доступен для кода, который вызвал Python. Это соглашение применяется ко всем платформам, хотя значение ненулевого статуса выхода может отличаться на разных платформах.
exit(0)
Это приводит к успешному завершению программы.
exit(1)
: Это приводит к выходу программы с системным значением.
На многих системах exit(1)
сигнализирует о каком-то сбое, однако нет никаких гарантий.
Насколько я помню, стандарт C распознает только три стандартных значения выхода:
EXIT_SUCCESS
- успешное завершениеEXIT_FAILURE
- неудачное завершение0
-- такой же какEXIT_SUCCESS
Номер, который вы передаете exit()
функция - это просто код возврата вашей программы, который передается операционной системе. С точки зрения вашей программы, нет никакой разницы: выполнение завершится в обоих случаях, а значение, предоставленное функции, будет передано ОС. Но некоторые инструменты и скрипты учитывают код завершения программы. Большинство инструментов возвращают 0, когда они успешны, и ненулевые, чтобы указать на ошибку.
Таким образом, если ваша программа будет запускаться из сценария, автоматизированного инструмента или другого программного обеспечения, которое учитывает код возврата (например, IDE), вы должны быть осторожны с тем, что вы возвращаете.
В случае сомнений просто верните 0, чтобы показать, что все в порядке.
exit(0)
был брошен, я пытался запустить некоторые сценарии с моим прокси-сервером (например, Charles/Proxyman). Просто закройте те прокси, которые захватывают вашу сеть