Поиск по сайту:

Оператор возврата Python


Оператор return Python используется для возврата значений из функции. Мы можем использовать оператор return только в функции. Его нельзя использовать вне функции Python.

Функция Python без оператора возврата

Каждая функция в Python что-то возвращает. Если у функции нет оператора return, она возвращает None.

def print_something(s):
    print('Printing::', s)


output = print_something('Hi')

print(f'A function without return statement returns {output}')

Выход:

Пример оператора возврата Python

Мы можем выполнить некоторую операцию в функции и вернуть результат вызывающей программе с помощью оператора return.

def add(x, y):
    result = x + y
    return result


output = add(5, 4)
print(f'Output of add(5, 4) function is {output}')

Выход:

Оператор возврата Python с выражением

У нас также могут быть выражения в операторе return. В этом случае выражение вычисляется и возвращается результат.

def add(x, y):
    return x + y


output = add(5, 4)
print(f'Output of add(5, 4) function is {output}')

Выход:

Python возвращает логическое значение

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

def bool_value(x):
    return bool(x)


print(f'Boolean value returned by bool_value(False) is {bool_value(False)}')
print(f'Boolean value returned by bool_value(True) is {bool_value(True)}')
print(f'Boolean value returned by bool_value("Python") is {bool_value("Python")}')

Выход:

Строка возврата Python

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

def str_value(s):
    return str(s)


print(f'String value returned by str_value(False) is {str_value(False)}')
print(f'String value returned by str_value(True) is {str_value(True)}')
print(f'String value returned by str_value(10) is {str_value(10)}')

Выход:

Кортеж возврата Python

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

def create_tuple(*args):
    my_list = []
    for arg in args:
        my_list.append(arg * 10)
    return tuple(my_list)


t = create_tuple(1, 2, 3)
print(f'Tuple returned by create_tuple(1,2,3) is {t}')

Выход:

Дополнительная литература: Python *args и **kwargs

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

Мы также можем вернуть функцию из оператора return. Это похоже на каррирование — технику преобразования вычисления функции, которая принимает несколько аргументов, в вычисление последовательности функций, каждая из которых имеет один аргумент.

def get_cuboid_volume(h):
    def volume(l, b):
        return l * b * h

    return volume


volume_height_10 = get_cuboid_volume(10)
cuboid_volume = volume_height_10(5, 4)
print(f'Cuboid(5, 4, 10) volume is {cuboid_volume}')

cuboid_volume = volume_height_10(2, 4)
print(f'Cuboid(2, 4, 10) volume is {cuboid_volume}')

Выход:

Функция Python, возвращающая внешнюю функцию

Мы также можем вернуть функцию, которая определена вне функции, с помощью оператора return.

def outer(x):
    return x * 10


def my_func():
    return outer


output_function = my_func()
print(type(output_function))

output = output_function(5)
print(f'Output is {output}')

Выход:

Python возвращает несколько значений

Если вы хотите вернуть несколько значений из функции, вы можете вернуть кортеж, yield, в этом случае, чтобы вернуть несколько значений одно за другим.

def multiply_by_five(*args):
    for arg in args:
        yield arg * 5


a = multiply_by_five(4, 5, 6, 8)

print(a)
# showing the values
for i in a:
    print(i)

Выход:

Резюме

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

Вы можете проверить полный скрипт Python и другие примеры Python в нашем репозитории GitHub.