6.7 The return statement

 

return_stmt  ::=  "return" [expression_list]
Download entire grammar as text.

return may only occur syntactically nested in a function definition, not within a nested class definition.   

If an expression list is present, it is evaluated, else None is substituted.

return leaves the current function call with the expression 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.  

In a generator function, the return statement is not allowed to include an expression_list. In that context, a bare return indicates that the generator is done and will cause StopIteration to be raised.

See About this document... for information on suggesting changes.