Python functions can return multiple variables. These variables can be stored in variables directly. A function is not required to return a variable, it can return zero, one, two or more variables.

This is a unique property of Python, other programming languages such as C++ or Java do not support this by default.

Related course: Complete Python Programming Course & Exercises

Example

Introduction

Variables defined in a function are only known in the function. That’s because of the scope of the variable. In general that’s not a problem, unless you want to use the function output in your program.

In that case you can return variables from a function. In the most simple case you can return a single variable:

1
2
3
def complexfunction(a,b):
sum = a +b
return sum

Call the function with complexfunction(2,3) and its output can be used or saved.

But what if you have multiple variables in a function that you want access to?

Multiple return

Create a function getPerson(). As you already know a function can return a single variable, but it can also return multiple variables.

We’ll store all of these variables directly from the function call.

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/env python3

def getPerson():
name = "Leona"
age = 35
country = "UK"
return name,age,country

name,age,country = getPerson()
print(name)
print(age)
print(country)

This will output:

multiple return

If you are a beginner, then I highly recommend this book.

Exercise

Try the exercises below:

  1. Create a function that returns a,b and a+b
  2. Create a function that returns 5 variables

After completing these continue with the next exercise.

Download examples