Domina cómo usar parámetros nombrados y dinámicos en Python para construir un API client flexible. Aquí verás cómo los keywords (también llamados kwargs) se reciben como diccionario, cómo combinarlos con args y cómo aplicar el doble asterisco para fusionar configuraciones y seleccionar entre News API y Guardian con una sola función.
¿Qué son keywords y por qué combinarlos con args?
Los keywords se envían con nombre y se reciben con doble asterisco: kwargs. A diferencia de args, que solo capturan valores posicionales, kwargs agrupa parámetros nombrados en un diccionario. Esto permite pasar pares key-value y trabajar con ellos de forma dinámica y clara.
kwargs es un diccionario. Permite inspeccionar keys y valores de entrada.
Key-value nombrado. Claridad al invocar funciones y reutilizarlas.
Combinación con args. Flexibilidad total con parámetros posicionales y nombrados.
Ejemplo base de impresión de keywords:
defejemplo_keywords(**keywords):print(type(keywords))# dictprint(keywords)# {'llave': 'valor', ...}print('---')# llamada de ejemplo# ejemplo_keywords(llave='valor', api_key='demo')
¿Cómo implementar kwargs en una función flexible?
La idea central: crear una función única que, según el nombre de la API, seleccione el API client correcto, mezcle una configuración base con parámetros dinámicos, y ejecute la llamada. El resultado es una función robusta y reutilizable.
deffetch_news(api_name,*args,**keywords):"""
función flexible para conectar con la API.
"""# configuración base común a múltiples APIs base_config ={"timeout":...,# por defecto"retries":...,# por defecto}# fusión de configuración: base + parámetros nombrados entrantes config ={**base_config,**keywords}# selección de cliente por nombre api_clients ={"newsAPI": news_api_client,# referencia a cliente de News API"Guardian": guardian_client,# referencia a cliente de Guardian} client = api_clients[api_name]return client(*args,**config)
¿Cómo funcionan los diccionarios y el doble asterisco?
**Desempaquetado con : copiar pares key-value dentro de otro diccionario.
Mezcla de configuraciones:{**base_config, **keywords} agrega y sobrescribe de forma limpia.
**Invocación con :client(*args, **config) pasa parámetros de forma explícita.
¿Qué orden de parámetros es correcto en Python?
Obligatorios primero: por ejemplo, api_name al inicio.
Luego args: parámetros posicionales variables.
**Al final kwargs: parámetros nombrados y dinámicos.
¿Cómo se selecciona el cliente por nombre?
Mapa de clientes: un diccionario api_clients con el nombre como clave.
Búsqueda directa:client = api_clients[api_name] elige el ejecutor correcto.
Una sola función: orquesta múltiples fuentes como News API y Guardian.
¿Cómo usarlo con News API y Guardian?
Con una misma función puedes enviar parámetros distintos y obtener resultados de diferentes orígenes. La clave está en pasar keywords específicos de cada servicio, manteniendo una base_config con timeout y retries.
**kwargs como diccionario para parámetros nombrados.
**args para valores posicionales flexibles.
Key-value explícito para legibilidad y mantenimiento.
**Desempaquetado con ** para fusionar configuraciones.
Configuración base con timeout y retries reutilizable.
Selección de cliente por nombre mediante diccionario de API clients.
Orden correcto de parámetros: obligatorios, args, **kwargs.
¿Tienes dudas sobre cómo adaptar los parámetros de tu API favorita o cómo estructurar tu base_config? Deja tu pregunta y cuéntanos tu caso para ayudarte a concretarlo.