Оператор возврата 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.