2010-07-31 41 views
7

Possibili duplicati:
Programatically stop execution of python script?
Terminating a Python scriptCome posso interrompere l'esecuzione in uno script Python?

Voglio stampare un valore, e quindi interrompere l'esecuzione dello script.

È sufficiente utilizzare il reso?

+0

Esistono diversi modi per terminare gli script Python. Puoi pubblicare del codice per dare qualche contesto? –

+3

Che diamine - come hai rep 5.7K e fai questa domanda? –

+1

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

risposta

17

È possibile utilizzare il ritorno all'interno della funzione principale ne hai uno, ma questo non è garantito per uscire allo script se v'è più codice dopo la chiamata al principale.

La più semplice che funziona quasi sempre è sys.exit():

import sys 
sys.exit() 

Altre possibilità:

  • generare un errore che non è catturato.
  • Lascia che il punto di esecuzione raggiunga la fine dello script.
  • Se ci si trova in una filettatura diversa dalla filettatura principale, utilizzare thread.interrupt_main().
+0

È possibile utilizzare solo 'return' in una funzione, e solo lasciando il punto di esecuzione raggiungere la fine dello script non è davvero "l'esecuzione arresto" –

+1

@ Michael Mrozek: Non sono d'accordo - di raggiungere il la fine dello script è un modo per fermare l'esecuzione. Se vuole solo stampare "Hello world", quindi terminare la sceneggiatura, questo è in realtà il modo più plateale per fermare l'esecuzione. –

6
+3

Potrebbe essere una buona idea menzionare che è necessario importare sys. Potrebbe anche essere una buona idea menzionare che hai bisogno di parentesi per chiamare effettivamente la funzione. Senza le parentesi non farà nulla. –

+0

+1 Leggi il commento di Mark; un po 'pigro per modificare il mio post. – NullUserException

7

C'è exit funzione nel sys modulo (docs):

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

È inoltre possibile

raise SystemExit 

o qualsiasi altra eccezione che non sarà catturato.

Problemi correlati