return_stmt: "return" [condition_list]
return may only occur syntactically nested in a function
definition, not within a nested class definition.
If a condition list is present, it is evaluated, else None
is substituted.
return leaves the current function call with the condition
list (or None) as return value.
When return passes control out of a try statement
with a finally clause, that finally clause is executed
before really leaving the function.