Python scenarijaus užbaigimas

Žinau apie PHP komandą die(), kuri anksčiau laiko sustabdo scenarijų.

Kaip galėčiau tai padaryti Pythone?

Sprendimas
import sys
sys.exit()

informacija iš sys modulio dokumentacijos:

sys.exit([arg])

Išėjimas iš Python. Tai įgyvendinama iškeliant SystemExit išimtį, todėl valymo veiksmai, nurodyti finally straipsniuose `try teiginiuose, yra vykdomi, ir galima perimti išėjimo bandymą išoriniame lygmenyje.

Neprivalomas argumentas arg gali būti sveikasis skaičius, nurodantis išėjimo būseną (pagal nutylėjimą lygus nuliui) arba kito tipo objektas. Jei jis yra sveikasis skaičius, nulis laikomas "sėkmingu užbaigimu", o bet kokia nenulinė reikšmė yra laikoma "nenormaliu užbaigimu", kai naudojamos kriauklės ir panašūs įrenginiai. Dauguma sistemų reikalauja, kad jis būtų iš intervalo 0-127, ir pateikia neapibrėžtus rezultatus priešingu atveju. Kai kuriose sistemose galioja konvencija, pagal kurią priskiriamas konkretus reikšmes konkretiems išėjimo kodams, tačiau paprastai tai yra nepakankamai išvystytos; Unix programose komandinės eilutės sintaksei paprastai naudojamas 2 klaidoms ir 1 visoms kitoms klaidoms. Jei kitas objekto tipas yra perduodamas, None yra lygiavertis nulio perdavimui, o bet koks kitas objektas yra išvedamas į stderr ir gaunamas išėjimo kodas 1. Visų pirma, sys.exit("koks nors klaidos pranešimas") yra greitas būdas užbaigti programą, kai įvyksta klaida.

Kadangi `exit() galiausiai "tik" iškelia išimtį, tai išėjimas bus tik procesą, kai jis iškviečiamas iš pagrindinio srauto, o išimtis nėra neperimama.

Atkreipkite dėmesį, kad tai yra 'gražus' išėjimo būdas. @glyphtwistedmatrix toliau nurodo, kad jei norite 'kieto išėjimo', galite naudoti os._exit(errorcode), nors tai'greičiausiai'tam tikru mastu priklauso nuo os (pavyzdžiui, gali būti, kad jis nepriima klaidos kodo po windows), ir jis tikrai yra mažiau draugiškas, nes neleidžia interpretatoriui atlikti jokio valymo prieš procesui mirštant.

Komentarai (7)

Kitas būdas:

raise SystemExit
Komentarai (2)
from sys import exit
exit()

Kaip parametrą galite perduoti išėjimo kodą, kuris bus grąžintas OS. Numatytoji reikšmė yra 0.

Komentarai (2)