Pasar Kwargs a otra función en Python
- Argumentos de palabras clave en Python
-
Función de llamada con
**kwargs
en Python -
Pasar
kwargs
a otra función con Python - Conclusión
Python enumera los dos tipos de argumentos que se pueden pasar a funciones en el programa. Los argumentos que no son palabras clave (**args
) y el argumento de palabra clave (**kwargs
).
Por lo general, las funciones de Python tienen que llamar con el número correcto de argumentos. Si la función espera dos argumentos, deberíamos pasar solo dos.
En este artículo, vamos a discutir cómo usar argumentos de palabras clave y cómo pasar argumentos de palabras clave a otra función.
Argumentos de palabras clave en Python
Generalmente, los argumentos pasan información a las funciones. Keyword Argument es un método que se puede usar para pasar argumentos a la función.
Especialmente utilizando argumentos de palabras clave, podemos enviar argumentos con la sintaxis clave = valor
. Veamos el siguiente ejemplo.
def keyword_function(fname, lname, age):
print("first name is " + fname)
keyword_function(fname="Anne", lname="Steaven", age=27)
Este ejemplo definió una función llamada keyword_function
. Pasa tres argumentos llamados fname
, lname
y age
.
Por lo tanto, estos argumentos se envían como argumentos de palabras clave porque cuando la función llama al programa, toma pares de clave y valor para cada argumento.
Producción:
En el resultado anterior, imprimimos una declaración pasando el argumento fname
.
Función de llamada con **kwargs
en Python
Principalmente, los argumentos de palabras clave se pueden usar cuando se desconocen varios argumentos. En ese caso, agregue dos asteriscos (**
) antes del nombre del parámetro en la definición de la función.
Si la función tiene un parámetro **kwargs
, acepta un número variable de argumentos de palabras clave como diccionario.
Piense en el siguiente ejemplo.
def animals(**kwargs):
print(kwargs)
animals(name1="Rabbit", name2="Dog", name3="Monkey")
Hay una función llamada animales
en el código anterior. Tiene un parámetro llamado **kwargs
, la llamada de función con tres argumentos como argumentos de palabra clave.
Producción:
Podemos ver el resultado como un diccionario con dos pares de valores y claves. El argumento de los kwargs
es convencional.
Entonces, como nombre de parámetro, podemos usar cualquier nombre significativo. Igual, así llaman a una función con el parámetro **kwargs
.
Pasar kwargs
a otra función con Python
Código:
def info(**kwargs):
x = dict(name="shen", age=27, degree="SE")
pass_func(**x)
def pass_func(**kwargs):
for i in kwargs:
print(i, kwargs[i])
info()
Usando el código anterior, imprimimos información sobre la persona, como nombre
, edad
y grado
. Este programa pasa kwargs
a otra función que incluye la variable x
declarando el método dict
.
Ejemplo de función definida info
sin ningún parámetro. La función info
declaró una variable x
que definía tres pares clave-valor y, por lo general, el par clave-valor se define en tipo de diccionario en Python.
En consecuencia, el método dict
especifica un par de claves y valores. Dado que los argumentos de desempaquetado kwargs
se declaran como un tipo de diccionario, podemos usar el método dict
para este ejemplo.
Luego tenemos otra función llamada pass_func
, que pasa argumentos kwargs
. Esta función incluye un bucle for
que imprime argumentos kwargs
, y después de eso, podemos pasar la función kwargs
a la función info
para imprimir x
.
Entonces, llamamos pass_func
con el argumento kwargs
a la variable x
. Finalmente, llamamos a la función info
en la función pass_func
.
Producción:
Conclusión
A lo largo del artículo, nos enfocamos en cómo pasar kwargs
a otra función. Los argumentos kwargs
pueden tener varias variables sin un parámetro definido para cada argumento.
Al pasar el argumento kwargs
a la función, esta debe usar asteriscos dobles con el nombre del parámetro **kwargs
. Al pasar kwargs
a otra función, primero crea un parámetro con dos asteriscos, y luego podemos pasar esa función a otra función como nuestro propósito.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.