[Tutor] multiple function returns
Steven D'Aprano
steve at pearwood.info
Fri Jun 28 13:19:53 CEST 2013
On 28/06/13 14:18, Jim Mooney wrote:
> What's the Pythonic standard on multiple returns from a function? It
> seems easiest to just return from the point where the function fails
> or succeeds, even it that's multiple points. Or is it considered best
> to defer everything to one return at the end?
The first. Python functions have one entry point, the top of the function. They can have multiple exit points, anywhere you have a return statement.
Languages like Pascal enforce a single exit point, which means you end up writing rubbish code like this:
# Using Python syntax instead of Pascal
def function(arg):
done = False
result = some_calculation(arg)
if condition():
done = True
if not done:
result = more_calculations()
if condition():
done = True
if not done:
result = even_more_calculations()
if condition():
done = True
if not done:
result = are_we_done_yet()
return result
compared to:
def function(arg):
result = some_calculation(arg)
if condition():
return result
result = more_calculations()
if condition():
return result
result = even_more_calculations()
if condition():
return result
return are_we_done_yet()
--
Steven
More information about the Tutor
mailing list