HOWTO · Python

Pasar Kwargs a otra función en Python

Python denotó los argumentos de kwargs como argumentos de palabras clave que se pueden pasar el número de argumentos usando dos asteriscos antes del nombre del parámetro. A través de este artículo buscamos cómo Python pasa kwargs a otra funció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:

Imprime una declaración pasando un argumento a la funció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:

Función de llamada con **kwargs en Python

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:

Pasar kwargs a otra función con Python

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.