DECORADORES EN PYTHON
Los decoradores sirven para ejecutar lógica del código antes y/o después de otra función, esto nos ayuda a generar funciones y código que pueda ser reutilizado fácilmente sin hacer más extenso nuestro código. Hay que recordar que si se genera una función dentro de otra solo existiera en ese scope(dentro de la función padre), si se quiere invocar una función varias veces dentro de otras se tiene que generar de manera global.
**args y kwargs**
Básicamente lo que hacen es pasar tal cual los valores de de los argumentos que se pasan a la función args hace referencias a listas y kwargs a elementos de un diccionario (llave: valor)
** args: **
def test_valor_arg(n_arg, *args):
print('primer valor normal: ', n_arg)
For arg in args:
print('este es un valor de *args: ',arg)
print(type(args))
if__name__ == '__main__':
test_valor_args('carlos','Karla','Paola','Elena')
- el tipo de valor y es una tupla
- solo poniendo argumentos divididos por comas los convierte
**kuargs: **
def test_valor_kwargs(**kwargs):
if kwargs is not None:
for key, value in kwargs.items():
print('%s == %s' %(key,value))
print(type(kwargs))
if __name__ == '__main__':
test_valor_kwargs(caricatura='batman')
- el valor que te da es un diccionario
- toma los valores en los extremos de un signo igual
Este es un ejemplo usando los 2 en una función
def test_valor_kwargs_args(*args, **kwargs):
print(type(kwargs))
print(kwargs)
print('----------')
print(type(args))
print(args)
if __name__ == '__main__':
test_valor_kwargs_args('flash', 'batman', caricatura='batman', empresa = 'dc')
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?