Laten we een iteratie aannemen waarin we een functie aanroepen zonder een retourwaarde. De manier waarop ik denk dat mijn programma zich zou moeten gedragen, wordt uitgelegd in deze pseudocode:
for element in some_list:
foo(element)
def foo(element):
do something
if check is true:
do more (because check was succesful)
else:
return None
do much much more...
Als ik dit in python implementeer, stoort het me dat de functie een None
retourneert. Is er een betere manier om “een functie te verlaten die geen retourwaarde heeft, als een controle mislukt in de hoofdtekst van de functie”?
Antwoord 1, autoriteit 100%
Je zou gewoon
. kunnen gebruiken
return
die precies hetzelfde doet als
return None
Uw functie retourneert ook None
als de uitvoering het einde van de hoofdtekst van de functie bereikt zonder een return
-instructie te raken. Niets retourneren is hetzelfde als None
retourneren in Python.
Antwoord 2, autoriteit 5%
Ik stel voor:
def foo(element):
do something
if not check: return
do more (because check was succesful)
do much much more...
Antwoord 3, autoriteit 5%
u kunt het return
statement gebruiken zonder enige parameter om een functie af te sluiten
def foo(element):
do something
if check is true:
do more (because check was succesful)
else:
return
do much much more...
of maak een uitzondering als u op de hoogte wilt worden gehouden van het probleem
def foo(element):
do something
if check is true:
do more (because check was succesful)
else:
raise Exception("cause of the problem")
do much much more...
Antwoord 4
return None
ofreturn
kunnen worden gebruikt om een functie of programma te verlaten, beide doen hetzelfdequit()
kan worden gebruikt, hoewel het gebruik van deze functie wordt afgeraden voor het maken van toepassingen in de echte wereld en alleen in de tolk mag worden gebruikt.
De functie
import site
def func():
print("Hi")
quit()
print("Bye")
-
De functie
exit()
kan worden gebruikt, vergelijkbaar metquit()
, maar het gebruik ervan wordt afgeraden voor het maken van toepassingen in de echte wereld.
import site
def func():
print("Hi")
exit()
print("Bye")
-
De functie
sys.exit([arg])
kan worden gebruikt en moet daarvoor de moduleimport sys
importeren, deze functie kan in tegenstelling tot de andere worden gebruikt voor toepassingen in de echte wereld twee functies.
import sys
height = 150
if height < 165: # in cm
# exits the program
sys.exit("Height less than 165")
else:
print("You ride the rollercoaster.")
os._exit(n)
-functie kan worden gebruikt om een proces te verlaten, en behoefte aanimport os
MODULE VOORDAT.