Intermediopython
Funciones y Decoradores
Aprende a definir funciones, usar argumentos avanzados (*args, **kwargs) y crear decoradores.
Definicion de funciones
Las funciones en Python se definen con
def. Pueden tener parametros por defecto y anotaciones de tipo.python
1def saludar(nombre: str, formal: bool = False) -> str:
2 """Genera un saludo personalizado."""
3 if formal:
4 return f"Estimado/a {nombre}, es un placer."
5 return f"Hola, {nombre}."
6
7print(saludar("Ana"))
8print(saludar("Dr. Garcia", True))*args y **kwargs
*args recibe argumentos posicionales como tupla. **kwargs recibe argumentos con nombre como diccionario.python
1def crear_perfil(nombre, *habilidades, **info):
2 perfil = {"nombre": nombre, "habilidades": habilidades}
3 perfil.update(info)
4 return perfil
5
6resultado = crear_perfil(
7 "Ana",
8 "Python", "React", "SQL",
9 puesto="Senior Dev",
10 ubicacion="Madrid"
11)
12print(resultado)Decoradores
Un decorador envuelve a otra funcion para extender su comportamiento sin modificar su codigo. Se aplican con
@nombre_decorador.python
1import time
2
3def medir_tiempo(func):
4 def wrapper(*args, **kwargs):
5 inicio = time.time()
6 resultado = func(*args, **kwargs)
7 fin = time.time()
8 print(f"{func.__name__} tardo {fin - inicio:.4f}s")
9 return resultado
10 return wrapper
11
12@medir_tiempo
13def proceso_pesado(n):
14 return sum(i**2 for i in range(n))
15
16resultado = proceso_pesado(1_000_000)