Как работает функция return() в Python?

Для получения значения из функции в языках программирования обычно используется оператор return(). Точно так же и в Python оператор return() используется для выхода из функции и возврата значения из функции. В этом уроке мы рассмотрим различные способы использования return() в Python.

Оглавление

return() в Python

Как и в других языках программирования, в Python return() завершает вызов функции и возвращает результат вызывающей стороне. Это ключевой компонент любой функции или метода в коде, который включает в себя ключевое слово return и значение, которое будет возвращено после этого. Вот некоторые моменты, которые следует учитывать при использовании return():

  • Код после return() не выполняется.
  • return() не может быть использован вне функции.
  • Если return() не содержит никакого выражения, то возвращается значение None.

Синтаксис функции return() в языке Python:

def func_name():
    ...
    return [expression]
    

Использование return() для возврата нескольких значений

Python также предоставляет возможность возвращать несколько значений из функции. Для этого пользователю достаточно указать несколько возвращаемых значений, разделенных запятыми. По итогу мы получим кортеж, который может быть явно создан с использованием (), но и без этого все будет работать.

Входные данные:

def statFun(a, b):
    difference = a - b
    percent_diff = (difference / a) * 100
    return difference, percent_diff


difference, percent_diff = statFun()
print(difference)
print(percent_diff)
    

Здесь функция statFun() выдает два значения.

Вывод:

8
20    

Использование return() с аргументами

В Python с return можно использовать аргументы. Аргументы — это параметры, передаваемые пользователем на вход функции, и мы спокойно можем вернуть их в return.

От редакции Pythonist: подробнее об аргументах читайте в статье «Функции и их аргументы в Python 3».

Входные данные:

def divNum(a, b):
    if b != 0:
        return a/b
    else:
        return 0

print(divNum(4, 2))
print(divNum(2, 0)) 
    

Здесь функция divNum() принимает два аргумента и, если второй аргумент ненулевой, делит их, в противном случае возвращает 0.

Вывод:

2
0    

Функция, возвращающая другую функцию

Как известно, в Python функции рассматриваются как объекты первого класса, поэтому мы можем возвращать функцию из другой функции.

Объект первого класса — это объект, который может быть присвоен переменной, передан в качестве аргумента функции или использован в качестве возвращаемого значения в функции.

Функция, которая принимает функцию в качестве аргумента, возвращает функцию в качестве результата или и то, и другое, называется функцией высшего порядка. Только учтите, что если вы вернете функцию без ее вызова (просто переменную без скобок ()), то вам нужно будет вызвать полученную функцию, чтобы получить ее результат.

Входные данные:

def func_1(a):
    def func_2(b):
        return a-b
    return func_2

x = func_1(100)
print ("The value of a-b is", x(50))

def another_func(a):
    return a*10

def func():
    return another_func

y = func()
print ("\nThe value of a*b is" y(10))
    

Вывод:

The value of a-b is 50
The value of a*b is 100
    

Заключительные мысли

Оператор return отправляет любой объект из функции обратно в код, вызывающий эту функцию. Этот оператор является ключевой частью любой функции или метода. Поэтому, прежде чем перейти к более сложным вещам, нужно научиться правильно его использовать.

Перевод статьи «How does return() in Python work?».