Raske lenker
Det å vite hvordan man avslutter et program er en viktig ferdighet som kan anvendes i mange sammenhenger. For eksempel, når du utvikler et enkelt spill, kan det være nødvendig å avslutte programmet basert på spesifikke brukerhandlinger eller når visse betingelser er oppfylt. La oss undersøke forskjellene mellom tre metoder for å avslutte et Python-program.
1. Bruk av quit() eller exit()
En lettvint måte å terminere et Python-program på er ved å anvende enten quit() eller exit(), som er innebygde funksjoner. Ved å kalle enten quit() eller exit(), vil programmet umiddelbart stanse.
Funksjonene quit() og exit() har samme virkning, og valget mellom dem er i bunn og grunn et spørsmål om personlig preferanse.
Her er et eksempel på bruk av quit() for å avslutte et Python-program:
for tall in range(10):
if tall == 9:
quit()
print(tall)
Dette eksempelet skriver ut heltallene fra 0 til 8. Når «tall» blir 9, blir programmet avsluttet. quit() kan også brukes for å avslutte Python Integrated Development and Learning Environment (IDLE), som muliggjør interaktiv kjøring av Python-skript.
Det er viktig å merke seg at både quit() og exit() er avhengige av site-modulen, noe som betyr at de kanskje ikke er ideelle for bruk i produksjonsmiljøer. Metoden sys.exit(), som er beskrevet nedenfor, er et mer robust alternativ.
2. Bruk av sys.exit()
Ved å kalle sys.exit() i koden din, utløses et SystemExit-unntak i Python. Denne metoden aksepterer et valgfritt argument som spesifiserer en heltallskode (0 er standard). Du kan også sende et objekt, som resulterer i en returkode på 1 og som skriver ut objektets stringverdi til standard feilstrøm.
import sysfor tall in range(10):
if tall == 5:
sys.exit("Programmet er stoppet")
print(tall)
Resultatet av dette programmet vil være som vist nedenfor:
Lik quit() og exit(), utløser sys.exit() også et SystemExit-unntak. Dette innebærer at du kan enten kalle sys.exit() eller utløse SystemExit(). Begge metodene aksepterer et valgfritt argument.
Det er lurt å sette seg inn i viktige Python-funksjoner hvis du ikke fullt ut forstår hvordan eksemplene ovenfor virker.
3. Bruk av os._exit()
Den tredje måten å stanse et program på er ved å anvende den spesielle os._exit()-metoden. Du kan spesifisere en utgangsstatuskode ved hjelp av et valgfritt argument. os._exit() er en del av os-modulen, og denne metoden avslutter prosessen umiddelbart uten å utføre de vanlige oppryddingsprosedyrene som normalt skjer ved avslutning av et Python-program.
Siden denne funksjonen ikke utfører standard opprydding, bør den kun brukes i spesielle situasjoner. Ifølge Pythons dokumentasjon er et godt eksempel bruk i en underordnet prosess etter en gaffel (en ny prosess opprettet ved hjelp av os.fork()).
Her er et kodeeksempel som viser hvordan os._exit()-funksjonen brukes for å avslutte et program:
import os
import sysdef underprosess():
print("Underprosess kjører.")
os._exit(0)def hovedprosess():
print("Hovedprosess kjører.")try:
pid = os.fork()if pid == 0:
underprosess()
else:
print(f"Hovedprosess fortsetter med PID for underprosess: {pid}")
except OSError as e:
print(f"Gaffel feilet: {e}")
sys.exit(1)print("Hovedprosess er ferdig.")
if __name__ == "__main__":
hovedprosess()
Koden ovenfor genererer følgende utskrift:
Hvilken tilnærming er best for å avslutte et Python-program?
Python tilbyr flere metoder for å avslutte et program. Imidlertid har de fleste av disse metodene i bunn og grunn samme funksjon. Dette forenkler beslutningsprosessen når du skal implementere en avslutningsmekanisme i programmet ditt mens du lærer Python.
For å oppsummere, er sys.exit() å foretrekke for å avslutte et Python-program. Den utløser et SystemExit-unntak med en valgfri utgangskode.
Metodene quit() og exit() passer best for bruk i Python REPL (Read-Eval-Print Loop). Det er anbefalt å unngå dem i produksjonskode siden de er avhengige av site-modulen, som ikke alltid er tilgjengelig. os._exit() bør sjeldent være nødvendig, med mindre du jobber med kode som involverer oppdeling av prosesser.