Acabo de darme cuenta de que hay algo exit(0)que se discute en esta pregunta y también uno con un guión bajo _exit(0), la diferencia se explica aquí
cardamomo
Lo bueno de estos códigos es que se pueden usar directamente en una ifdeclaración en un bashcontenedor, por lo que se pueden tomar medidas adicionales independientemente de si el programa Python tiene éxito o no, o si generó un estado distinto de cero.
SDsolar
raro, si 0 es Falso y 1 es Verdadero en Python, pensarías que los números significarían lo contrario
Monica Heddneck
Respuestas:
248
0 y 1 son los códigos de salida.
exit(0) significa una salida limpia sin errores / problemas
exit(1) significa que hubo algún problema / error / problema y es por eso que el programa se está cerrando.
Esto no es específico de Python y es bastante común. Un código de salida distinto de cero se trata como una salida anormal y, a veces, el código de error indica cuál fue el problema. Un código de error cero significa una salida exitosa.
Esto es útil para otros programas, shell, llamadas, etc. para saber qué sucedió con su programa y proceder en consecuencia.
@Faizan: el código de salida es un valor de 8 bits en Unix. Si invoca exit(-1), el valor es equivalente a exit(255): los 8 bits menos significativos se transmiten al programa de llamada (shell o lo que sea).
Jonathan Leffler
44
Tenga en cuenta que según los documentos , exit()el sitemódulo lo agrega y no debe ser utilizado por los programas. En su lugar, use sys.exit(), o incluso raise SystemExit, si no desea importar otro módulo.
daviewales
2
Debido a los códigos de salida de Unix / Linux, estaba pensando que 0 es verdadero y 1 es valor falso en las condiciones de Python.
vlyalcin
19
Esto determina el estado de salida del programa cuando termina de ejecutarse (generalmente, 0 para el éxito y 1 para el error).
No es exclusivo de Python, y el efecto exacto depende de su sistema operativo y de cómo se llama al programa (aunque el 99% del tiempo, si solo está ejecutando scripts de Python, no importa).
La convención estándar para todos los programas en C, incluido Python, es para exit(0)indicar el éxito, y / exit(1)o cualquier otro valor distinto de cero (en el rango 1..255) para indicar el fracaso. Cualquier valor fuera del rango 0..255 se trata en el módulo 256 (el estado de salida se almacena en un valor de 8 bits). A veces, eso se tratará como firmado (por lo que es posible que vea -128, -127, etc.) pero, por lo general, se trata como no firmado.
Este estado está disponible para el código que invocó a Python. Esta convención se aplica en todas las plataformas, aunque el significado del estado de salida distinto de cero puede variar en diferentes plataformas.
El número que pasa a la exit()función es simplemente el código de retorno de su programa, que se le da al sistema operativo. Desde el punto de vista de su programa, no hay diferencia: la ejecución finalizará en ambos casos, y el valor suministrado a la función se le dará al sistema operativo. Pero algunas herramientas y scripts tienen en cuenta el código de salida del programa. La mayoría de las herramientas devuelven 0 cuando tienen éxito y no son cero para indicar un error.
Por lo tanto, si su programa se ejecutará desde un script, una herramienta automatizada o desde algún otro software que tenga en cuenta el código de retorno (como un IDE), debe tener cuidado con lo que devuelve.
En caso de duda, simplemente devuelva 0 para indicar que todo está bien.
exit()
los documentos , que me llevó una eternidad encontrar.The site module (which is imported automatically during startup, except if the -S command-line option is given) adds several constants to the built-in namespace. They are useful for the interactive interpreter shell and should not be used in programs
lugar, usesys.exit()
exit(0)
que se discute en esta pregunta y también uno con un guión bajo_exit(0)
, la diferencia se explica aquíif
declaración en unbash
contenedor, por lo que se pueden tomar medidas adicionales independientemente de si el programa Python tiene éxito o no, o si generó un estado distinto de cero.Respuestas:
0 y 1 son los códigos de salida.
exit(0)
significa una salida limpia sin errores / problemasexit(1)
significa que hubo algún problema / error / problema y es por eso que el programa se está cerrando.Esto no es específico de Python y es bastante común. Un código de salida distinto de cero se trata como una salida anormal y, a veces, el código de error indica cuál fue el problema. Un código de error cero significa una salida exitosa.
Esto es útil para otros programas, shell, llamadas, etc. para saber qué sucedió con su programa y proceder en consecuencia.
fuente
exit(-1)
, el valor es equivalente aexit(255)
: los 8 bits menos significativos se transmiten al programa de llamada (shell o lo que sea).exit()
elsite
módulo lo agrega y no debe ser utilizado por los programas. En su lugar, usesys.exit()
, o inclusoraise SystemExit
, si no desea importar otro módulo.Esto determina el estado de salida del programa cuando termina de ejecutarse (generalmente, 0 para el éxito y 1 para el error).
No es exclusivo de Python, y el efecto exacto depende de su sistema operativo y de cómo se llama al programa (aunque el 99% del tiempo, si solo está ejecutando scripts de Python, no importa).
fuente
La convención estándar para todos los programas en C, incluido Python, es para
exit(0)
indicar el éxito, y /exit(1)
o cualquier otro valor distinto de cero (en el rango 1..255) para indicar el fracaso. Cualquier valor fuera del rango 0..255 se trata en el módulo 256 (el estado de salida se almacena en un valor de 8 bits). A veces, eso se tratará como firmado (por lo que es posible que vea -128, -127, etc.) pero, por lo general, se trata como no firmado.Este estado está disponible para el código que invocó a Python. Esta convención se aplica en todas las plataformas, aunque el significado del estado de salida distinto de cero puede variar en diferentes plataformas.
fuente
El número que pasa a la
exit()
función es simplemente el código de retorno de su programa, que se le da al sistema operativo. Desde el punto de vista de su programa, no hay diferencia: la ejecución finalizará en ambos casos, y el valor suministrado a la función se le dará al sistema operativo. Pero algunas herramientas y scripts tienen en cuenta el código de salida del programa. La mayoría de las herramientas devuelven 0 cuando tienen éxito y no son cero para indicar un error.Por lo tanto, si su programa se ejecutará desde un script, una herramienta automatizada o desde algún otro software que tenga en cuenta el código de retorno (como un IDE), debe tener cuidado con lo que devuelve.
En caso de duda, simplemente devuelva 0 para indicar que todo está bien.
fuente
exit(0)
: Esto hace que el programa salga con una finalización exitosa.exit(1)
: Esto hace que el programa salga con un significado específico del sistema.En muchos sistemas,
exit(1)
indica algún tipo de falla, sin embargo, no hay garantía.Como recuerdo, el estándar C solo reconoce tres valores de salida estándar:
EXIT_SUCCESS
- terminación exitosaEXIT_FAILURE
- terminación fallida0
-- igual queEXIT_SUCCESS
fuente