La declaración de retorno de Python se utiliza para devolver valores de la función. Podemos usar la declaración de retorno solo en una función. No se puede usar fuera de una función de Python .
Función 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}')
Producción:
Ejemplo de declaración de retorno de Python
Podemos realizar alguna operación en una función y devolver el resultado al llamador utilizando la declaración de retorno.
def add(x, y): result = x + y return resultoutput = add(5, 4)print(f'Output of add(5, 4) function is {output}')
Producción:
Sentencia de retorno de Python con expresión
También podemos tener expresiones en la declaración de retorno. En ese caso, se evalúa la expresión y se devuelve el resultado.
def add(x, y): return x + youtput = add(5, 4)print(f'Output of add(5, 4) function is {output}')
Producción:
Python devuelve un valor booleano
Veamos un ejemplo en el que devolveremos el valor booleano del argumento de una función. Usaremos 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")}')
Producción:
Cadena de retorno de Python
Veamos un ejemplo en el que 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)}')
Producción:
Python devuelve una tupla
A veces queremos convertir una cantidad de variables en una tupla . Veamos cómo escribir una función que devuelva una tupla a partir de una cantidad 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}')
Producción:
Lectura adicional : *args y **kwargs de Python
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 volumevolume_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}')
Producción:
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 * 10def my_func(): return outeroutput_function = my_func()print(type(output_function))output = output_function(5)print(f'Output is {output}')
Producción:
Python devuelve múltiples valores
Si desea devolver varios valores de una función, puede devolver una tupla, una lista o un objeto de diccionario según sus necesidades. Sin embargo, si tiene que devolver una gran cantidad de valores, el uso de una secuencia es una operación que consume demasiados recursos. En este caso, podemos usar yield para devolver varios valores uno por uno.
def multiply_by_five(*args): for arg in args: yield arg * 5a = multiply_by_five(4, 5, 6, 8)print(a)# showing the valuesfor i in a: print(i)
Producción:
Resumen
La declaración de retorno de 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, se evalúan las expresiones y luego se devuelve el resultado desde la función.
Puede consultar el script de Python completo y más ejemplos de Python en nuestro repositorio de GitHub .