CodeForge

Python de Cero a Experto / POO

Reto: modela Mi Bolsillo con clases

Reto40 min60 XP

Junta toda la POO en un modelo completo de Mi Bolsillo con clases: un Gasto (dataclass) y un Bolsillo que los gestiona —agregar, calcular totales, agrupar por categoría, encapsular su estado—. Es exactamente cómo se diseña una app de verdad: objetos que modelan las cosas del dominio y colaboran. Cuando termines, tendrás un modelo orientado a objetos que podrías extender a una app real.

Reto

Modelo de Mi Bolsillo

Media35 min60 XP(×2 sin mirar la solución)

Qué debes construir

Dos clases que modelan un gestor de gastos:

  1. Gasto (usa @dataclass): campos nombre: str, valor: int, categoria: str = "otros". Con una propiedad calculada con_iva (@property).
  2. Bolsillo: gestiona una lista de gastos (guardada como interna, _gastos). Con métodos:
    • agregar(gasto): añade un gasto (valida que su valor sea positivo).
    • total: propiedad calculada que suma todos los valores.
    • por_categoria(): devuelve un diccionario {categoria: total}.
    • mas_caro(): devuelve el gasto de mayor valor.
    • __len__: cuántos gastos hay (para usar len(bolsillo)).
  3. Un reporte que use el modelo.

Reglas

  • Gasto es una @dataclass; Bolsillo encapsula su lista (_gastos).
  • total es una @property (se usa sin paréntesis); agregar valida.
  • Usa lo que aprendiste: dataclass, property, un dunder (__len__), comprehensions.

35:00

Cuando estés listo, arranca el reloj.

Qué sigue

Módulo 4 conquistado: dominas la POO en Python de punta a punta —clases, atributos, herencia, dunder methods, properties, dataclasses y protocols—. Ya modelas el mundo con objetos, la base del software a gran escala. El módulo 5 te lleva al Python INTERMEDIO: manejar errores con excepciones, trabajar con archivos, los context managers (with), y formatos como JSON y CSV —las herramientas para que tus programas interactúen con el mundo real de forma robusta—.