Python cómo salir de la función principal [duplicate]

2 minutos de lectura

avatar de usuario
Stan

Posibles duplicados:

Terminar un script de Python
Terminar un programa de Python

Mi pregunta es ¿cómo salir de la función principal de Python? Yo he tratado ‘return‘ pero dio el error SyntaxError: 'return' outside function. ¿Alguien puede ayudar? Gracias.

if __name__ == '__main__':
  try:
    if condition:
    (I want to exit here) 
    do something
  finally:
    do something

  • Cuando buscaste, ¿qué encontraste? stackoverflow.com/search?q=%5Bpython%5D+salir. Todos estos parecen tener algo en común.

    – S. Lott

    28 de septiembre de 2010 a las 18:25

  • Creo que la gente ha perdido el punto de esta pregunta. El OP no está buscando una forma genérica de terminar un programa. Quiere saber por qué, en este caso, return no sirve para ese fin.

    –Brent Bradburn

    07/04/2012 a las 16:00

  • Esta respuesta a una pregunta relacionada parece la más útil aquí stackoverflow.com/a/953385/86967.

    –Brent Bradburn

    7 abr 2012 a las 16:01


Puedes usar sys.exit() para salir de la mitad de la función principal.

Sin embargo, recomendaría no hacer ninguna lógica allí. En su lugar, ponga todo en una función y llámela desde __main__ – entonces puede usar return como de costumbre.

  • +1 por agregar una función explícita de ‘todo’. Esto también hace que sea más fácil (1) llamar a este script desde otros scripts (2) prueba unitaria.

    – Manoj Govindan

    28 de septiembre de 2010 a las 18:23

  • Guido van Rossum apoya (o al menos solía hacerlo) este enfoque: artima.com/weblogs/viewpost.jsp?thread=4829

    – idea

    28 de septiembre de 2010 a las 18:23

  • Por lo general, creo una función llamada “principal” y la coloco en la parte superior del archivo.

    –Bryan Oakley

    28 de septiembre de 2010 a las 18:36

  • exit () funciona bien para mí, usando python 2.7.x

    – Radtek

    2 mayo 2014 a las 19:25

No puedes regresar porque no estás en una función. Puedes exit aunque.

import sys
sys.exit(0)

0 (el valor predeterminado) significa éxito, distinto de cero significa falla.

  • Por qué sys.exit() en lugar de simplemente simple exit()?

    -Kirk Strauser

    28 de septiembre de 2010 a las 18:26

  • ¿Por que no? Además, Python intenta no proporcionar más funciones integradas de las necesarias.

    – David Z.

    28 de septiembre de 2010 a las 18:32

  • @Solo el documentos decir que no use simple exit en los programas, y podría decirse que es un insecto (aunque un WONTFIX) que incluso puedes.

    – Mateo Flaschen

    28 de septiembre de 2010 a las 18:42


Si no tiene ganas de importar nada, puede probar:

raise SystemExit, 0

  • ¿Se puede atrapar esto si alguien quisiera extender el principal y no salir al final?

    – ThorSummoner

    21 de agosto de 2015 a las 17:54

usar el módulo del sistema

import sys
sys.exit()

Llamar sys.exit.

¿Ha sido útil esta solución?