Does Python have a finally
equivalent for its if/else
statements, similar to its try/except/finally
statements? Something that would allow us to simplify this:
if condition1:
do stuff
clean up
elif condition2:
do stuff
clean up
elif condition3:
do stuff
clean up
...
...
to this:
if condition1:
do stuff
elif condition2:
do stuff
elif condition3:
do stuff
...
...
finally:
clean up
Where finally
would only be called only after a condition was met and its 'do stuff' run? Conversely, if no condition was met, the finally
code would not be run.
I hate to spout blasphemy, but the best way I can describe it is there being a GOTO
statement at the end of each block of 'do stuff' that led to finally
.
Essentially, it works as the opposite of an else
statement. While else
is only run if no other conditions are met, this would be ran ONLY IF another condition was met.
The answer of mhlester has repetitive code, an improved version might be as follows:
Another suggestion, which might suit you if the conditions are pre-computed.
This would be a pain if you were evaluating the conditions as part of your if statements, because in that case you would have to evaluate them a second time for the
any
function...unless Python is smarter than I realise.