Python exit-opdrachten: quit(), exit(), sys.exit() en os._exit()
De functies quit(), exit(), sys.exit() en os._exit() hebben bijna dezelfde functionaliteit omdat ze de SystemExit-uitzondering genereren waardoor de Python-interpreter afsluit en er geen stacktraceback wordt afgedrukt. We kunnen de uitzondering opvangen door vroegtijdige exits te onderscheppen en opruimingsactiviteiten uit te voeren; als hij niet wordt opgevangen, verlaat de tolk zoals gewoonlijk. In dit artikel zullen we zien hoe u de Python programma.
Wat zijn Python Exit-opdrachten?
Exit-opdrachten in Python verwijzen naar methoden of instructies die worden gebruikt om de uitvoering van een Python-programma te beëindigen of de Python-interpreter af te sluiten. De veelgebruikte exit-opdrachten zijn ` sys.exit() ', ' Uitgang() ', en ' ontslag nemen() `. Deze opdrachten stoppen het programma of de tolk, waardoor de gebruiker de uitvoering op een elegante manier kan beëindigen. er zijn enkele commando's in Python om af te sluiten. We bespreken deze commando's in het kort. De commando's zijn de volgende
- quit() in Python
- exit() in Python
- sys.exit() met Python
- os._exit() in Python
Opmerking : In de interactieve modus (waarbij Python in de terminal wordt uitgevoerd), kunt u doorgaans afsluiten door te typen
exit()>ofquit()>zonder haakjes.
Python Exit-opdracht met behulp van de functie quit().
De ontslag nemen() function werkt als een exit-commando in Python, al was het maar als de sitemodule is geïmporteerd, dus deze mag niet in productiecode worden gebruikt. Productiecode betekent dat de code door het beoogde publiek wordt gebruikt in een echte situatie. Deze functie mag alleen in de tolk worden gebruikt. Het roept de SystemExit-uitzondering achter de schermen op. Als je het afdrukt, geeft het een melding en beëindigt het een programma in Python.
Voorbeeld: In de opgegeven code, wanneer i> gelijk is aan 5, wordt afgedrukt ontslag nemen en probeert de Python-interpreter af te sluiten met behulp van de quit()> functie. Als i> niet gelijk is aan 5, wordt de waarde afgedrukt van i> .
Python3
for> i> in> range> (> 10> ):> > if> i> => => 5> :> > print> (quit)> > quit()> > print> (i)> |
Uitgang:
0 1 2 3 4 Use quit() or Ctrl-D (i.e. EOF) to exit
Python Exit-opdracht gebruiken exit() Functie
De exit() in Python wordt gedefinieerd als exit-commando's in python als in site.py en het werkt alleen als de sitemodule wordt geïmporteerd, dus deze mag alleen in de tolk worden gebruikt. Het is als een synoniem voor quit() om Python gebruiksvriendelijker te maken. Het geeft ook een bericht wanneer het wordt afgedrukt en beëindigt een programma in Python.
Voorbeeld : In de opgegeven code, wanneer i> gelijk is aan 5, wordt afgedrukt Uitgang en probeert de Python-interpreter af te sluiten met behulp van de exit()> functie. Als i> niet gelijk is aan 5, wordt de waarde afgedrukt van i> .
Python3
for> i> in> range> (> 10> ):> > if> i> => => 5> :> > print> (exit)> > exit()> > print> (i)> |
Uitgang:
0 1 2 3 4 Use exit() or Ctrl-D (i.e. EOF) to exit
sys.exit([arg]) met Python
In tegenstelling tot quit() en exit(), wordt sys.exit() beschouwd als exit-opdrachten in Python als er altijd goede bronnen voor gebruik in productiecode voor de sys-module beschikbaar zijn. Het optionele argument arg kan een geheel getal zijn dat de uitgang geeft, of een ander type object. Als het een geheel getal is, nul wordt als succesvolle beëindiging beschouwd.
Opmerking: Er kan ook een tekenreeks worden doorgegeven aan de methode sys.exit().
Voorbeeld: In de gegeven code wordt de sys.exit('Age less than 18')> line beëindigt het Python-script met een bericht Leeftijd jonger dan 18 jaar als de variabele age> is minder dan 18. Als age> 18 jaar of ouder is, wordt deze afgedrukt De leeftijd is niet minder dan 18 jaar. Deze code wordt gebruikt om het script te verlaten met een specifiek bericht wanneer aan een bepaalde voorwaarde wordt voldaan. En het stopt een programma in Python.
Python3
import> sys> age> => 17> if> age <> 18> :> > sys.exit(> 'Age less than 18'> )> else> :> > print> (> 'Age is not less than 18'> )> |
Uitgang:
An exception has occurred, use %tb to see the full traceback. SystemExit: Age less than 18
os._exit(n) in Python
De os._exit() methode in Python wordt gebruikt om het proces met een gespecificeerde status af te sluiten zonder opschoonhandlers aan te roepen, stdio-buffers leeg te maken, enz.
Opmerking: Deze methode wordt normaal gesproken gebruikt in het onderliggende proces na de systeemaanroep os.fork(). De standaardmanier om het proces af te sluiten is de sys.exit(n)-methode.
Voorbeeld : In dit voorbeeld creëert de onderstaande Python-code een ouder-kind-procesrelatie met behulp van os.fork()> . Het bovenliggende proces wacht tot het onderliggende proces is voltooid en de afsluitcode ophaalt, terwijl het onderliggende proces een bericht afdrukt en afsluit met de statuscode van succes.
Python3
import> os> pid> => os.fork()> if> pid>> 0> :> > > print> (> '
In parent process'> )> > info> => os.waitpid(pid,> 0> )> > if> os.WIFEXITED(info[> 1> ]) :> > code> => os.WEXITSTATUS(info[> 1> ])> > print> (> 'Child's exit code:'> , code)> > else> :> > print> (> 'In child process'> )> > print> (> 'Process ID:'> , os.getpid())> > print> (> 'Hello ! Geeks'> )> > print> (> 'Child exiting..'> )> > > os._exit(os.EX_OK)> |
Uitgang:
In child process Process ID: 25491 Hello ! Geeks Child exiting.. In parent process Child's exit code: 0
Conclusie
Van de bovenstaande vier exit-functies heeft sys.exit() vooral de voorkeur omdat de functies exit() en quit() niet in productiecode kunnen worden gebruikt, terwijl os._exit() alleen voor speciale gevallen is wanneer de onmiddellijke exit vereist is.