Para qué sirve y cómo usar args y kwargs en Python
¡Hola! Este mes de octubre vamos a seguir dándole caña a Python y en el tutorial de esta semana vamos a ver como usar args y kwargs para enviar argumentos en Python 😎
En Python, tenemos dos formas de enviar argumentos en una función. La primera y la más conocida es enviarlos posicionalmente y la segunda es en formato clave-valor.
Para qué sirve args y kwargs
Args y kwargs, nos permitirá enviar un número dinámico de argumentos a una función. Esto nos puede venir bien cuando una función recibe demasiados argumentos y pierde legibilidad o cuando el número de argumentos pueda variar.
Uso de args en Python
Cuando enviamos los argumentos de forma posicional utilizaremos args. Al llamar a la función, enviaremos los parámetros de forma secuencial y en la definición de la función, añadiremos solo un argumento llamado args y que delante tendrá el carácter '*'. Aunque Python nos permite darle cualquier nombre, por convención, se recomienda utilizar el nombre args.
Ahora que hemos explicado como funciona args, vamos a verlo con un ejemplo. En el siguiente caso tenemos la función llamada user_data que recibe varios parámetros:
def user_data(name, surname, birthday, nif, address, position, company, email):
pass
Como veis, son varios parámetros y podemos perder legibilidad. Si queremos utilizar args, haremos lo siguiente:
def user_data_args(*args):
print(args)
user_data_args('Alberto', 'Ramírez Caballero', '23-11-1987', '0123456789X', 'Calle Sol, 2', 'Backend Dev', 'cosasdedevs', 'alberto@cosasdedevs.com')
La variable args contendrá una tupla con los argumentos ordenados por la posición en la que fueron enviados. Por ejemplo, el nombre estará en la posición 0, los apellidos en la posición 1 y así sucesivamente.
Después, podemos utilizar las asignaciones múltiples para guardar los valores en variables.
Uso de kwargs en Python
Python nos permite enviar pares de clave-valor cuando llamamos a una función. De esta forma, podremos ser más precisos a la hora de enviar parámetros y evitar confusiones. Cuando enviamos los argumentos en formato clave-valor, utilizaremos kwargs. Al llamar a la función, enviaremos los parámetros en formato clave-valor y en la definición de la función, añadiremos solo un argumento llamado kwargs y que delante tendrá el carácter '**'.
Al igual que con args, Python nos permite darle cualquier nombre, pero por convención, se recomienda utilizar el nombre kwargs.
Y ahora que hemos explicado como funciona kwargs, vamos a verlo con un ejemplo:
def user_data_kwargs(**kwargs):
print(kwargs)
user_data_kwargs(name='Alberto', surname='Ramírez Caballero', birthday='23-11-1987', nif='0123456789X', address='Calle Sol, 2', position='Backend Dev', company='cosasdedevs', email='alberto@cosasdedevs.com')
Es el mismo caso que con args, pero aquí hemos usado kwargs. Al llamar a la función, enviamos los pares de clave-valor separados por comas y la función recibirá un diccionario con toda la información enviada.
Espero que este post te ayude y como siempre, te recomiendo seguirme en Twitter para estar al tanto de los nuevo contenido. Ahora también puedes seguirme en Instagram donde estoy subiendo tips, tutoriales en vídeo e información sobre herramientas para developers.
Por último os dejo mi guía para aprender a trabajar con APIs donde explico todo el funcionamiento de una API, el protocolo HTTP y veremos como construir una API con arquitectura REST.
Nos leemos 👋.