Uso de **kwargs en Python

**Uso de kwargs en Python

En Python, **kwargs es un parámetro especial que permite pasar un número variable de argumentos con nombre a una función.

*Diferencias con args

La principal diferencia entre **kwargs y *args es que **kwargs recibe los argumentos como un diccionario, mientras que *args los recibe como una tupla.

Cómo usarlo

Para usar **kwargs, debemos definir un parámetro de tipo **kwargs en la función. Por ejemplo:

Python
def persona(nombre, edad, **kwargs):
    """
    Imprime los datos de una persona.

    Args:
        nombre: El nombre de la persona.
        edad: La edad de la persona.
        **kwargs: Otros datos opcionales de la persona.
    """

    print("Nombre:", nombre)
    print("Edad:", edad)

    for clave, valor in kwargs.items():
        print(clave, ":", valor)

persona("Juan", 30, color="azul", altura=1.80)

Este código imprimirá el siguiente resultado:

Nombre: Juan
Edad: 30
color: azul
altura: 1.80

Ejemplos de uso

kwargs se puede usar para pasar un número variable de opciones a una función. Por ejemplo, la siguiente función puede usarse para generar un mensaje personalizado:

Python
def mensaje(destinatario, asunto, **kwargs):
    """
    Genera un mensaje personalizado.

    Args:
        destinatario: El destinatario del mensaje.
        asunto: El asunto del mensaje.
        **kwargs: Otros datos opcionales del mensaje.
    """

    mensaje = "Asunto: " + asunto
    mensaje += "\nDe: " + destinatario

    for clave, valor in kwargs.items():
        mensaje += "\n" + clave + ": " + valor

    return mensaje

mensaje("Juan", "Hola", nombre="Pedro", edad=30)

Este código imprimirá el siguiente resultado:

Asunto: Hola
De: Juan

nombre: Pedro
edad: 30

kwargs también se puede usar para pasar un número variable de datos a una función que los necesita para realizar una tarea. Por ejemplo, la siguiente función puede usarse para calcular el área de una figura geométrica:

Python
def area(figura, **kwargs):
    """
    Calcula el área de una figura geométrica.

    Args:
        figura: El tipo de figura geométrica.
        **kwargs: Otros datos necesarios para calcular el área.
    """

    if figura == "circulo":
        radio = kwargs["radio"]
        return math.pi * radio ** 2
    elif figura == "rectangulo":
        ancho = kwargs["ancho"]
        alto = kwargs["alto"]
        return ancho * alto
    elif figura == "triangulo":
        base = kwargs["base"]
        altura = kwargs["altura"]
        return (base * altura) / 2
    else:
        raise ValueError("Figura no válida")

area("circulo", radio=10)

Este código imprimirá el siguiente resultado:

314.1592653589793

Conclusión

kwargs es una herramienta útil que permite pasar un número variable de argumentos con nombre a una función. Se puede usar para pasar opciones, datos o cualquier otra información que la función necesite para realizar una tarea.