¿Qué son KWARGS y ARGS?

| Última modificación: 14 de julio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Te has preguntado qué son los asteriscos en una función o qué son KWARGS y ARGS? Dentro de los fundamentos de programación, hay una serie de funciones que se encargan de procesar datos de entrada, realizar un acción y devolver valores. En muchos de los problemas que se solucionan en lenguajes de programación como Python, hay funciones con un número variable de argumentos. Es ahí donde el programador debe saber qué son KWARGS y ARGS en Python.

Por tanto, en este post, queremos contarte qué son KWARGS y ARGS, cuál es su funcionalidad y cómo puedes utilizarlos en tus programas.

¿Qué son KWARGS y ARGS?

¿Qué son KWARGS y ARGS?

KWARGS y ARGS se introdujeron para proporcionar flexibilidad en la definición de funciones en Python. A medida que Python ha evolucionado, estas características se han vuelto fundamentales para escribir código más limpio y eficiente. Entender su historia y evolución ayuda a apreciar su importancia y utilidad en la programación moderna.

KWARGS

Para explicar qué son KWARGS y ARGS, vamos a comenzar por hablar de KWARGS, que es una de las formas para crear una función con un número variable de argumentos. Es necesaria cuando deseamos realizar una función que tenga los parámetros que deseamos, aunque no sean ni del mismo tipo o no tengan el mismo significado. Esta función aparece, comúnmente, con dos asteriscos (**). KWARGS es un diccionario local con un número indeterminado de valores.

Ejemplo básico:

def boletin(**asignaturas):
notas = []
for asignatura, nota in asignaturas.items():
print(asignatura, "-", nota)
notas.append(nota)
print("-" * 20)
print("Media:", sum(notas) / len(notas))

boletin(lenguaje=10, matematicas=8, ingles=4)

En el ejemplo anterior se define una función boletin, por la que se pasará argumentos por pares clave-valor, es decir, asignaturas. Aquí se observa cómo en Python utiliza la función KWARGS conformando un diccionario que se titula asignaturas, es decir, la variable local del boletín. El diccionario está constituido por los pares lenguaje=10, matemáticas=8 e inglés=4. Después, Python procesa el diccionario en variables de cadena.

ARGS

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Para continuar con la explicación de qué son KWARGS y ARGS, continuamos con ARGS.

Para crear una función con un número variable o indeterminado de parámetros, usualmente del mismo tipo, utilizamos la función *ARGS, que aparece solo con un asterisco, a diferencia de la función KWARGS. La necesidad surge, por ejemplo, en el cálculo de una media o al procesar una función con un número variable de argumentos. ARGS es una lista local con un número indeterminado de valores.

Ejemplo básico:

def suma(*nums):
total = 0
for num in nums:
total += num
return total

print(suma(4, 5, 6))

En el ejemplo anterior, se define una función con un número variable de parámetros, con un asterisco delante. Se observa cómo Python, a través de la función ARGS, toma los valores 4, 5, 6 y los copia a una lista llamada nums, que es la variable local en suma de la función. En el segundo paso, se procesa esa lista como lo que es, con los mismos valores mencionados (4, 5, 6) y sin poner el asterisco en primer lugar.

Usos avanzados y ejemplos complejos

Usando ARGS y KWARGS juntos

def ejemplo_avanzado(*args, **kwargs):
for arg in args:
print("ARG:", arg)
for key, value in kwargs.items():
print("KWARG:", key, "=", value)

ejemplo_avanzado(1, 2, 3, a=4, b=5)

En este ejemplo, la función ejemplo_avanzado acepta tanto argumentos posicionales como argumentos con nombre, mostrando cómo se pueden manejar múltiples tipos de entradas en una función.

Comparación con otros lenguajes de programación

En lenguajes como JavaScript, la capacidad de manejar argumentos variables se maneja mediante el objeto arguments o el operador spread (...). Comparar cómo diferentes lenguajes implementan esta funcionalidad puede ayudar a los programadores a entender mejor las fortalezas y debilidades de cada enfoque.

Mejores prácticas y consideraciones al usar KWARGS y ARGS

  • Claridad y simplicidad: Evita el uso excesivo de KWARGS y ARGS en funciones donde el número de parámetros es fijo y conocido, para mantener la claridad del código.
  • Documentación: Asegúrate de documentar claramente las funciones que utilizan KWARGS y ARGS para que otros desarrolladores comprendan su uso y propósito.
  • Manejo de errores: Implementa controles y manejo de errores para gestionar casos donde los argumentos no sean los esperados.

Errores comunes y soluciones

  • Orden de los argumentos: Recuerda siempre que ARGS debe ir antes de KWARGS en la firma de la función.
  • Desempaquetado incorrecto: Asegúrate de no confundir el desempaquetado de listas y diccionarios al pasar argumentos a las funciones.

Ahora que ya conoces qué son KWARDS y ARGS en el lenguaje de programación Python, puedes empezar a emplear estas funciones en la resolución de tus problemas en el campo de la programación. Para conocer más en profundidad cómo utilizar estas y otras funciones imprescindibles para tu camino como programador, no dudes en inscribirte en el Bootcamp de programación desde cero que ofrece KeepCoding.

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a Programar desde Cero

Full Stack Jr. Bootcamp

Apúntate y consigue uno de los perfiles más demandados con Python en solo 4 meses.