Intermediopython
Type Hints y Data Classes Modernas
Escribe código Python limpio, tipado, autodocumentado y libre de errores con dataclasses y typing.
Tipado estático opcional (Type Hints)
Python 3.5+ incorporó anotaciones de tipo para mejorar la legibilidad, habilitar autocompletado avanzado en editores y permitir validación estática con herramientas como
mypy.python
1from typing import Optional, List, Dict
2
3def procesar_usuario(id_usuario: int, roles: List[str]) -> Dict[str, bool]:
4 permisos: Dict[str, bool] = {}
5 for rol in roles:
6 permisos[rol] = True
7 return permisos
8
9def buscar_por_email(email: str) -> Optional[dict]:
10 if "@" in email:
11 return {"email": email}
12 return NoneData Classes (@dataclass)
El decorador
@dataclass (disponible desde Python 3.7) genera automáticamente métodos especiales como __init__, __repr__, __eq__ y soporte para inmutabilidad con frozen=True.python
1from dataclasses import dataclass, field
2from datetime import datetime
3
4@dataclass(frozen=True)
5class Curso:
6 titulo: str
7 precio: float
8 instructor: str
9 estudiantes: int = 0
10 activo: bool = True
11
12curso = Curso(titulo="Python Mastery", precio=29.99, instructor="Jhon")
13print(curso) # Curso(titulo='Python Mastery', precio=29.99, instructor='Jhon', estudiantes=0, activo=True)
14# curso.precio = 39.99 # Error: FrozenInstanceError (inmutable)