What value is returned from a function that does not have a return statement?

Improve Article

Save Article

A return statement is used to end the execution of the function call and “returns” the result (value of the expression following the return keyword) to the caller. The statements after the return statements are not executed. If the return statement is without any expression, then the special value None is returned. A return statement is overall used to invoke a function so that the passed statements can be executed.

Note: Return statement can not be used outside the function.

Syntax: 

def fun():
    statements
    .
    .
    return [expression]

Example:

def cube(x):
   r=x**3
   return r

Example:

Python3

def add(a, b):

    return a + b

def is_true(a):

    return bool(a)

res = add(2, 3)

print("Result of add function is {}".format(res))

res = is_true(2<5)

print("\nResult of is_true function is {}".format(res))

Output: 

Result of add function is 5

Result of is_true function is True

Returning Multiple Values

In Python, we can return multiple values from a function. Following are different ways.  

  • Using Object: This is similar to C/C++ and Java, we can create a class (in C, struct) to hold multiple values and return an object of the class. 

Example

Python3

class Test:

    def __init__(self):

        self.str = "geeksforgeeks"

        self.x = 20  

def fun():

    return Test()

t = fun() 

print(t.str)

print(t.x)

  • Using Tuple: A Tuple is a comma separated sequence of items. It is created with or without (). Tuples are immutable. See this for details of tuple.

Python3

def fun():

    str = "geeksforgeeks"

    x = 20

    return str, x; 

str, x = fun()

print(str)

print(x)

  • Output: 
geeksforgeeks
20
  • Using a list: A list is like an array of items created using square brackets. They are different from arrays as they can contain items of different types. Lists are different from tuples as they are mutable. See this for details of list.

Python3

def fun():

    str = "geeksforgeeks"

    x = 20  

    return [str, x];  

list = fun() 

print(list)

  • Output: 
['geeksforgeeks', 20]
  • Using a Dictionary: A Dictionary is similar to hash or map in other languages. See this for details of dictionary.

Python3

def fun():

    d = dict(); 

    d['str'] = "GeeksforGeeks"

    d['x']   = 20

    return d

d = fun() 

print(d)

  • Output: 
{'x': 20, 'str': 'GeeksforGeeks'}

Function returning another function

In Python, functions are objects so, we can return a function from another function. This is possible because functions are treated as first class objects in Python. To know more about first class objects click here. 

In the below example, the create_adder function returns the adder function.  

Python3

def create_adder(x):

    def adder(y):

        return x + y

    return adder

add_15 = create_adder(15)

print("The result is", add_15(10))

def outer(x):

    return x * 10

def my_func():

    return outer

res = my_func()

print("\nThe result is:", res(10))

Output: 

The result is 25

The result is: 100

What value is returned when function does not return any?

If a function does not return any value ( also called returns void) then the return type of the function will be void.

What type of function does not contain a return statement?

A function that does not return a value is called a non-value returning function (or a void function). A void function will automatically return to the caller at the end of the function. No return statement is required.