Por Chaitanya Singh | Filed Under: Tutorial de Python
En este tutorial, discutiremos los argumentos de las funciones variables. En los tutoriales anteriores de la función Python y de las funciones definidas por el usuario de Python aprendimos que llamamos a la función con un número fijo de argumentos, por ejemplo si hemos definido una función para aceptar dos argumentos, tenemos que pasar los dos argumentos mientras llamamos a la función. Aquí veremos cómo llamar a la función con argumentos variables utilizando argumentos por defecto, de palabra clave y arbitrarios.
Argumentos de la función de posición fija
Antes de discutir los argumentos de la función variable veamos los errores que obtenemos cuando llamamos a la función con argumentos variables sin usar argumentos por defecto, de palabra clave y arbitrarios.
Aquí hemos definido una función demo() con dos parámetros: nombre y edad, lo que significa que esta función puede aceptar dos argumentos mientras la llamamos.
def demo(nombre,edad): """Esta función muestra la edad de una persona""" print(name + " is " + age + " years old")# llamando a la funcióndemo("Mohan","20")
Salida:
Veamosqué sucede, llamamos a esta función con un número variable de argumentos:
Aquí estamos llamando a la función demo() con un solo argumento, como se puede ver en la salida que tenemos un error.
def demo(nombre,edad): print(nombre + " es " + edad + " años de edad")# llamando a la funcióndemo("Mohan")
Salida:
TypeError: demo() falta 1 argumento posicional requerido: "edad
Aquí estamos llamando a la función sin argumentos y estamos recibiendo un error.
def demo(nombre,edad): print(nombre + " es " + edad + " años de edad")# llamando a la funcióndemo()
Salida:
TypeError: demo() faltan 2 argumentos posicionales requeridos: "nombre" y "edad
Argumentos de función variable en Python
Hasta ahora hemos visto los argumentos de la función fija en Python. También hemos aprendido que cuando intentamos pasar los argumentos variables mientras llamamos a una función, obtenemos un error.
Ahora es el momento de aprender a pasar los argumentos variables en la función usando argumentos por defecto, de palabra clave y arbitrarios.
Argumentos por defecto de Python
Podemos proporcionar valores por defecto a los argumentos de la función. Una vez que proporcionamos un valor por defecto a un argumento de la función, el argumento se convierte en opcional durante la llamada a la función, lo que significa que no es obligatorio pasar ese argumento durante la llamada a la función. Tomemos un ejemplo para entender este concepto.
En este ejemplo, hemos proporcionado el valor por defecto del parámetro age utilizando el operador de asignación (=).
En el siguiente ejemplo el nombre del parámetro no tiene un valor por defecto, por lo que es obligatorio durante la llamada a la función. Por otra parte, el parámetro age tiene un valor por defecto, por lo que es opcional durante una llamada a la función.
def demo(nombre, edad = "30"): """ Esta función muestra el nombre y la edad de una persona. Si no se indica la edad, se mostrará su valor predeterminado 30. """ print(name + " is " + age + " years old")demo("Steve")demo("Lucy", "20")demo("Bucky", "40")
Salida:
Argumentos de palabras clave de Python
Hemos aprendido que cuando pasamos los valores durante la llamada de la función, se asignan a los respectivos argumentos según su posición. Por ejemplo, si una función se define así: def demo(nombre, edad): y llamamos a la función así: demo(«Steve», «35») entonces el valor «Steve» se asigna al nombre del argumento y el valor «35» se asigna al argumento age. Tales argumentos se llaman argumentos posicionales.
Python nos permite pasar los argumentos de manera no posicional usando argumentos de palabras clave. Tomemos un ejemplo para entender esto:
def demo(nombre, edad): print(nombre + " es " + edad + " años de edad")# 2 argumentos de palabras clave (En orden)demo(nombre = "Steve", edad = "35")# 2 argumentos de palabras clave (No en orden)demo(edad = "20", nombre = "Mohan")# 1 posicional y 1 palabra clave argumentdemo("Bucky", edad = "40")
Salida:
Nota: En el ejemplo anterior, durante la tercera llamada a la función demo(«Bucky», age = «40») tenemos el argumento de la palabra clave y el argumento de la no-palabra clave.
En el ejemplo el argumento de la palabra clave sigue (está después) al argumento de la no-palabra clave. Sin embargo, si tratas de colocar el argumento de la palabra clave antes del argumento de la no-palabra clave, arrojaría el siguiente error:
SyntaxError: arg no clave después de arg palabra clave
Así que, por favor, tened en cuenta que cuando mezcléis los argumentos de posición y de palabra clave, el argumento de palabra clave debe ir siempre después del
argumento de no palabra clave (argumento de posición).
Argumentos arbitrarios de Python
Python nos permite tener el número arbitrario de argumentos. Esto es especialmente útil cuando no
estamos seguros de antemano de cuántos argumentos, la función requeriría.
Definimos los argumentos arbitrarios mientras definimos una función usando el signo asterisco (*)
.
def frutas(*nombres): """Esta función muestra los nombres de las frutas""" # fnames es una tupla con argumentos para la fruta en fnames: frutas impresas (naranja, plátano, manzana, uvas)
Salida:
En el ejemplo anterior estamos usando el * antes del parámetro fnames que nos permite aceptar el número arbitrario de argumentos
durante la llamada a la función.
Todos los argumentos pasados se almacenan en forma de tupla, antes de ser pasados a la función. Dentro de la función, estamos mostrando todos los argumentos pasados usando para el bucle.
❮ PreviousNext ❯