La declaración de retorno de Python se utiliza para devolver valores desde la función. Podemos usar la declaración de retorno solo en una función. No se puede utilizar fuera de una función de Python.
Función de Python sin declaración de retorno
Cada función en Python devuelve algo. Si la función no tiene ninguna declaración de retorno, devuelve None
.
def print_something(s):
print('Printing::', s)
output = print_something('Hi')
print(f'A function without return statement returns {output}')
Salida:

Ejemplo de Declaración de Retorno de Python
Podemos realizar alguna operación en una función y devolver el resultado al llamante utilizando la declaración de retorno.
def add(x, y):
result = x + y
return result
output = add(5, 4)
print(f'Output of add(5, 4) function is {output}')
Salida:

Declaración de retorno de Python con expresión
También podemos tener expresiones en la declaración de retorno. En ese caso, la expresión se evalúa y se devuelve el resultado.
def add(x, y):
return x + y
output = add(5, 4)
print(f'Output of add(5, 4) function is {output}')
Salida:

Python devuelve booleano
Veamos un ejemplo donde devolveremos el valor booleano del argumento de una función. Utilizaremos la función bool() para obtener el valor booleano del objeto.
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")}')
Salida:

Python devuelve cadena
Veamos un ejemplo donde nuestra función devolverá la representación en cadena del argumento. Podemos utilizar la función str() para obtener la representación en cadena de un objeto.
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)}')
Salida:

Python devuelve tupla
A veces queremos convertir una serie de variables en una tupla. Veamos cómo escribir una función para devolver una tupla a partir de un número variable de argumentos.
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}')
Salida:

Lectura adicional: Python *args y **kwargs
Función de Python que devuelve otra función
También podemos devolver una función desde la declaración de retorno. Esto es similar a Currying, que es la técnica de traducir la evaluación de una función que toma múltiples argumentos en la evaluación de una secuencia de funciones, cada una con un solo argumento.
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}')
Salida:

Función de Python que devuelve una función externa
También podemos devolver una función que está definida fuera de la función con la declaración de retorno.
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}')
Salida:

Python devuelve múltiples valores
Si deseas devolver varios valores desde una función, puedes devolver una tupla, una lista, o un objeto diccionario según tus necesidades. Sin embargo, si debes devolver un gran número de valores, usar una secuencia es una operación que consume demasiados recursos. En este caso, podemos utilizar la palabra clave \texttt{yield} para devolver múltiples valores uno por uno.
def multiply_by_five(*args):
for arg in args:
yield arg * 5
a = multiply_by_five(4, 5, 6, 8)
print(a)
# mostrando los valores
for i in a:
print(i)
Salida:

Resumen
La declaración de retorno en Python se utiliza para devolver la salida de una función. Aprendimos que también podemos devolver una función desde otra función. Además, las expresiones se evalúan y luego el resultado se devuelve desde la función.
Puedes revisar el script completo de Python y más ejemplos en nuestro Repositorio en GitHub.
Source:
https://www.digitalocean.com/community/tutorials/python-return-statement