Saltar al contenido

Comandos de salida de Python: ¿por qué tantos y cuándo debería usarse cada uno?

septiembre 28, 2021
apple touch icon@2

Las funciones* quit(), exit(), y sys.exit() funcionan de la misma manera: elevan la SystemExit excepción. Entonces no hay una diferencia real, excepto que sys.exit() siempre está disponible pero exit() y quit() solo están disponibles si el site se importa el módulo.

los os._exit() La función es especial, sale inmediatamente sin llamar a ninguna función de limpieza (no vacía los búferes, por ejemplo). Esto está diseñado para casos de uso altamente especializados … básicamente, solo en el niño después de un os.fork() llama.

Conclusión

  • Usar exit() o quit() en el REPL.

  • Usar sys.exit() en guiones, o raise SystemExit() si tu prefieres.

  • Usar os._exit() para que los procesos secundarios salgan después de una llamada a os.fork().

Todos estos se pueden llamar sin argumentos, o puede especificar el estado de salida, por ejemplo, exit(1) o raise SystemExit(1) para salir con el estado 1. Tenga en cuenta que los programas portátiles están limitados a códigos de estado de salida en el rango 0-255, si raise SystemExit(256) en muchos sistemas, esto se truncará y su proceso realmente saldrá con el estado 0.

Notas al pie

* Realmente, quit() y exit() son objetos de instancia invocables, pero creo que está bien llamarlos funciones.

close