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

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

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

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

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


output = print_something('Hi')

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

Вывод:

Python Function Without Return Statement

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

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

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 Example

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

Мы также можем использовать выражения в операторе возврата. В этом случае выражение оценивается, и результат возвращается.

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


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

Вывод:

Python Return Statement With Expression

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 Return Boolean

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 Return String

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 Function Return Tuple

Дополнительное чтение: 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 Function

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 Function Return Outer Function

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

Если вы хотите вернуть несколько значений из функции, вы можете вернуть кортеж, список или объект словаря в зависимости от ваших требований. Однако, если вам нужно вернуть большое количество значений, использование последовательности – это слишком ресурсозатратная операция. В этом случае мы можем использовать yield, чтобы поочередно возвращать несколько значений.

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


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

print(a)
# отображение значений
for i in a:
    print(i)

Вывод:

Python Return vs Yield

Резюме

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

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

Source:
https://www.digitalocean.com/community/tutorials/python-return-statement