21 - Funciones con un número arbitrario de argumentos y múltiples valores de retorno

Lección 21 del curso Python Nivel Básico.

Introducción

En la lección anterior vimos los diferentes tipos de argumentos que puede tener una función en Python: posicionales, por palabra clave y por defecto.

Pero resulta que en ocasiones no conocemos con antelación la cantidad de argumentos de entrada, o queremos retornar múltiples valores. Así que en esta lección vamos a ver cómo modificar nuestras funciones para incluir estas dos alternativas.

Contenido exclusivo suscriptores

Suscríbete y accede al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Funciones con un número variable de argumentos

Para crear una función capaz de aceptar un número variable de argumentos, simplemente debemos agregar el operador * antes del nombre del parámetro.

Por ejemplo, podemos definir la función adiciones_pizza de la siguiente forma: def adiciones_pizza(adiciones). Observemos que hemos agregado el operador * al parámetro adiciones (*adiciones). Este asterisco indica a Python que adiciones podrá contener uno o múltiples argumentos.

Al momento de llamar la función podremos hacerlo con el número de parámetros que queramos. Por ejemplo: adiciones_pizza('albahaca') o adiciones_pizza('albahaca', 'pepperoni', 'prosciutto').

Argumentos por defecto y múltiples argumentos

Podemos combinar este número de argumentos variables con argumentos por defecto (como en la estructura de funciones vista originalmente), como por ejemplo en def ingredientes_pizza(base='queso', *adiciones):. En este caso el parámetro base tendrá por defecto el valor 'queso', mientras que adiciones será un parámetro con un número arbitrario de argumentos.

Así, podemos llamar la función escribiendo por ejemplo ingredientes_pizza('queso y tomate', 'pepperoni', 'albahaca', 'prosciutto'). En este caso el primer argumento posicional (queso y tomate) será asignado al parámetro base, mientras que los argumentos pepperoni, albahaca y prosciutto serán asignados a *adiciones.

Funciones con múltiples valores de retorno

Usando la misma palabra clave return podemos hacer que Python retorne más de un valor tras ejecutar la función.

Por ejemplo, al crear la función def operaciones(*numeros): y al final de la misma escribir return suma, resta, multiplicacion podremos retornar tres valores calculados por la función: las variables suma, resta y multiplicacion.

Para poder almacenar estos valores retornados por operaciones podemos llamarla por ejemplo de la siguiente manera: res_sum, res_res, res_mul = operaciones(5,3,2,9). Así, las variables suma, resta y multiplicacion, calculadas al interior de la función, podrán ser almacenadas en las variables res_sum, res_res y res_mul.

Contenido exclusivo suscriptores

Recuerda suscribirte para acceder al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

Perfecto, ya hemos visto lo flexibles que son las funciones en Python, pues podemos presentar un número arbitrario de argumentos de diferentes formas, y además retornar múltiples valores.

En la siguiente lección veremos un último concepto importante asociado a las funciones en Python: hablaremos entonces del significado de las variables locales y globales y de algo que se conoce como las reglas de alcance.

Ver todas las lecciones de este curso