args y kwargs en Python (argumentos)
args representa un conjunto arbitrario de argumentos posicionales, mientras que kwargs es lo mismo pero con argumentos con keyword, o nombre. De ahí el significado de kwargs: keyword arguments.
Hay que destacar que la sintaxis es * y **, siendo los nombres de args y kwargs una simple convención, pero no es un requisito estricto su uso; es decir, que si a una función le pasamos como argumento *mi_lista o **mi_diccionario tendrá el mismo efecto.
*args: es una lista de argumentos, como argumentos posicionales.
**kwargs: es un diccionario cuyas claves se convierten en parámetros y sus valores en los argumentos de los parámetros.
Por ejemplo:
def lista_argumentos(*args):
for i, arg in enumerate(args):
print('%d - %s' % (i, arg))
Salida por consola: Cuando escribes por consola aparece el *args
In [10]: lista_argumentos("Aulavir.com","María",[1,2],3)
0 - Aulavir.com
1 - María
2 - [1, 2]
3 - 3
De la misma forma podemos realizarlo con **, tomando en cuenta que es un diccionario:
Ejemplo:
def auto_props(**props):
for key in props:
print(key, props[key])
Salida por consola: Aparece el **props
auto_props(v=1,a=3,c=4)
v 1
a 3
c 4
En esta función tenemos dos argumentos y una keyword:
def saludo_args(nombre,pais,**kwargs):
print(f'Hola {nombre} de {pais}')
for key in kwargs:
print(key, kwargs[key])
Al escribir en consola obtenemos:
saludo_args("Pepe","EEUU", edad=20, peso=72)
En la salida por consola obtenemos:
Hola Pepe de EEUU
edad 20
peso 72
En este ejemplo unimos un args y kwargs:
def auto_propsss(*args,**kwargs):
print(f'Hola {args[0]} de {args[1]}')
for key in kwargs:
print(key, kwargs[key])
Al escribir en consola:
auto_propsss("Jhon","Alemania",edad=30, talla=1.64,peso=72)
Obtenemos en pantalla:
Hola Jhon de Alemania
edad 30
talla 1.64
peso 72
Referencias:
Canepa, G. (2017, July 19). Args y kwargs en Python: su significado. Retrieved October 17, 2018, from https://blog.carreralinux.com.ar/2017/07/args-y-kwargs-python-significado/
*args y **kwargs - python, con ejemplos. (2018, February 17). Retrieved October 25, 2018, from https://jarroba.com/args-kwargs-python-ejemplos/
Hay que destacar que la sintaxis es * y **, siendo los nombres de args y kwargs una simple convención, pero no es un requisito estricto su uso; es decir, que si a una función le pasamos como argumento *mi_lista o **mi_diccionario tendrá el mismo efecto.
*args: es una lista de argumentos, como argumentos posicionales.
**kwargs: es un diccionario cuyas claves se convierten en parámetros y sus valores en los argumentos de los parámetros.
Por ejemplo:
def lista_argumentos(*args):
for i, arg in enumerate(args):
print('%d - %s' % (i, arg))
Salida por consola: Cuando escribes por consola aparece el *args
In [10]: lista_argumentos("Aulavir.com","María",[1,2],3)
0 - Aulavir.com
1 - María
2 - [1, 2]
3 - 3
De la misma forma podemos realizarlo con **, tomando en cuenta que es un diccionario:
Ejemplo:
def auto_props(**props):
for key in props:
print(key, props[key])
Salida por consola: Aparece el **props
auto_props(v=1,a=3,c=4)
v 1
a 3
c 4
En esta función tenemos dos argumentos y una keyword:
def saludo_args(nombre,pais,**kwargs):
print(f'Hola {nombre} de {pais}')
for key in kwargs:
print(key, kwargs[key])
Al escribir en consola obtenemos:
saludo_args("Pepe","EEUU", edad=20, peso=72)
En la salida por consola obtenemos:
Hola Pepe de EEUU
edad 20
peso 72
En este ejemplo unimos un args y kwargs:
def auto_propsss(*args,**kwargs):
print(f'Hola {args[0]} de {args[1]}')
for key in kwargs:
print(key, kwargs[key])
Al escribir en consola:
auto_propsss("Jhon","Alemania",edad=30, talla=1.64,peso=72)
Obtenemos en pantalla:
Hola Jhon de Alemania
edad 30
talla 1.64
peso 72
Referencias:
Canepa, G. (2017, July 19). Args y kwargs en Python: su significado. Retrieved October 17, 2018, from https://blog.carreralinux.com.ar/2017/07/args-y-kwargs-python-significado/
*args y **kwargs - python, con ejemplos. (2018, February 17). Retrieved October 25, 2018, from https://jarroba.com/args-kwargs-python-ejemplos/
Comentarios
Publicar un comentario