Jag känner till kommandot die()
i PHP som stoppar ett skript i förtid.
Hur kan jag göra detta i Python?
import sys
sys.exit()
detaljer från dokumentationen för modulen sys
:
sys.exit([arg])
Avsluta från Python. Detta implementeras genom att höja
SystemExit
-undantaget, så upprensningsåtgärder som specificeras av finally-klausuler avtry
-instruktioner respekteras, och det är möjligt att avlyssna avslutningsförsöket på en yttre nivå.Det valfria argumentet arg kan vara ett heltal som anger utgångsstatusen. (standard är noll), eller en annan typ av objekt. Om det är ett heltal, noll anses vara "lyckad avslut" och alla värden som inte är noll är betraktas som "onormal avslutning" av shells och liknande. De flesta system kräver att det ska vara i intervallet 0-127, och ger odefinierade resultat. annars. Vissa system har en konvention för att tilldela specifika specifika betydelser till specifika avslutningskoder, men dessa är i allmänhet Unix-programmen använder i allmänhet 2 för syntaxen på kommandoraden. fel och 1 för alla andra typer av fel. Om en annan typ av objekt överlämnats, är None likvärdigt med att överlåta noll, och alla andra objekt är skrivs ut till
stderr
och resulterar i exitkoden 1. I synnerhet,sys.exit("some error message")
är ett snabbt sätt att avsluta ett program när ett fel inträffar.Eftersom
exit()
i slutändan "bara" ger upphov till ett undantag, kommer det bara att avsluta processen när den anropas från huvudtråden, och undantaget inte är avlyssnas inte.
Observera att detta är det 'trevliga' sättet att avsluta. @glyphtwistedmatrix nedan påpekar att om du vill ha en 'hård exit', kan du använda os._exit(errorcode), även om det sannolikt är os-specifikt i viss utsträckning (det kanske inte tar emot en errorcode under Windows, till exempel), och det är definitivt mindre vänligt eftersom det inte låter tolken göra någon upprensning innan processen dör.