What is the best way to exit a function (which has no return value) in python before the function ends (e.g. a check fails)?
Let's assume an iteration in which we call a function without a return value. The way I think my program should behave is explained in this 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...
If I implement this in python, it bothers me, that the function returns a None
. Is there a better way for "exiting a function, that has no return value, if a check fails in the body of the function"?
Solution 1:
You could simply use
return
which does exactly the same as
return None
Your function will also return None
if execution reaches the end of the function body without hitting a return
statement. Returning nothing is the same as returning None
in Python.
Solution 2:
I would suggest:
def foo(element):
do something
if not check: return
do more (because check was succesful)
do much much more...
Solution 3:
you can use the return
statement without any parameter to exit a function
def foo(element):
do something
if check is true:
do more (because check was succesful)
else:
return
do much much more...
or raise an exception if you want to be informed of the problem
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...
Solution 4:
-
return None
orreturn
can be used to exit out of a function or program, both does the same thing -
quit()
function can be used, although use of this function is discouraged for making real world applications and should be used only in interpreter.
import site
def func():
print("Hi")
quit()
print("Bye")
-
exit()
function can be used, similar toquit()
but the use is discouraged for making real world applications.
import site
def func():
print("Hi")
exit()
print("Bye")
-
sys.exit([arg])
function can be used and need toimport sys
module for that, this function can be used for real world applications unlike the other two functions.
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)
function can be used to exit from a process, and need toimport os
module for that.