21 - Funciones con un número arbitrario de argumentos y múltiples valores de retorno
Lección 21 del curso Python Nivel Básico.
Tabla de contenido
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.
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
.
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.