pythonfunction

Is it possible to not return anything from a function in python? (What happens if the function reaches the end without `return`ing?)


Consider this code:

def foo(foo_input):
    if 0 <= foo_input <= 100:
        return f_input

This returns None in the case where foo_input > 100. But could it actually not return anything? Or does a function always have to return something?


See also: return, return None, and no return at all?


Solution

  • Functions always return something (at least None, when no return-statement was reached during execution and the end of the function is reached).

    Another case is when they are interrupted by exceptions. In this case exception handling will "dominate over the stack" and you will return to the appropriate except or get some nasty error :)

    Regarding your problem I must say there are two possibilities: Either you have something to return or you do not have.