2010-07-31 37 views
7

duplicados posibles:
Programatically stop execution of python script?
Terminating a Python script¿cómo detengo la ejecución en una secuencia de comandos python?

Quiero imprimir un valor y, a continuación, detener la ejecución del script.

¿Solo uso return?

+0

Existen diferentes formas de terminar las secuencias de comandos de Python. ¿Puedes publicar algún código para dar contexto? –

+3

¿Qué diablos - cómo tienes 5.7K rep y hacer esta pregunta? –

+1

Otro duplicado: http://stackoverflow.com/questions/179369/how-do-i-abort-the-execution-of-a-python-script –

Respuesta

17

Puede utilizar return dentro de la función principal en la que tiene una, pero no se garantiza que salga de la secuencia de comandos si hay más código después de su llamada a main.

El más simple que casi siempre funciona es sys.exit():

import sys 
sys.exit() 

Otras posibilidades:

  • generará un error que no se encuentra atrapado.
  • Deje que el punto de ejecución llegue al final del script.
  • Si está en un hilo que no sea el hilo principal, use thread.interrupt_main().
+0

Solo puede usar 'return' en una función, y simplemente dejar que el punto de ejecución llegue al final del guión no es realmente" detener la ejecución " –

+1

@Michael Mrozek: No estoy de acuerdo, llegando al el final del script es una forma de detener la ejecución. Si solo quiere imprimir "Hola mundo" y luego finalizar el guión, esa es en realidad la forma más pitónica de detener la ejecución. –

6
+3

Podría ser una buena idea mencionar que necesita importar sys. También podría ser una buena idea mencionar que necesita paréntesis para llamar realmente a la función. Sin los paréntesis, no hará nada. –

+0

+1 Leer el comentario de @ Mark; un poco perezoso para editar mi publicación. – NullUserException

7

Hay exit función en sys módulo (docs):

import sys 
sys.exit(0) # 0 will be passed to OS 

También puede

raise SystemExit 

o cualquier otra excepción que no podrá ser pescada.

Cuestiones relacionadas