GuíaBásico

Guía de OOP y Modelado de Datos en Python

Un diccionario suelto con las llaves correctas puede parecerse a un objeto, pero no protege sus invariantes, no expone comportamiento y se rompe en silencio cuando alguien le mete un valor inválido. Esta guía enseña a diseñar un modelo de objetos limpio, correcto y "pythónico" partiendo de ese problema real. Trabajas modelando un solo dominio de principio a fin —Reservo, un sistema de reservas de salas de coworking— y lo construyes con clases desde cero: primero el paso de datos sueltos a un objeto que junta datos y comportamiento, después encapsulación con propiedades que validan invariantes, `@dataclass` para modelar datos inmutables sin código repetitivo, composición para armar el grafo de objetos del dominio, herencia y polimorfismo para los distintos tipos de socio, protocolos y clases abstractas para diseñar contra interfaces en vez de contra implementaciones concretas, y los métodos dunder que hacen que un objeto se sienta nativo de Python (comparación, orden, iteración, context managers). Todo el código se ejecuta de verdad con Python 3.14 y se verifica contra números de ancla del dominio (una reserva de 3 horas en la sala Focus cuesta 7500 centavos, con 20% de descuento para el tier pro). El proyecto final modela el dominio Reservo completo con las ocho piezas integradas y una demo ejecutable.

64
lecciones
8
módulos
Inglés · Español
disponible en
Gratis
acceso
NIEVA

Resultados

Lo que vas a poder hacer

  • Pasar de datos sueltos (diccionarios, tuplas) a una clase propia, entendiendo la diferencia entre clase e instancia, `__init__` y `self`
  • Encapsular estado con `@property` para exponer comportamiento sin romper invariantes, validando reglas del dominio (`capacity > 0`, precios no negativos) en el lugar correcto
  • Modelar datos con `@dataclass`, incluyendo objetos de valor inmutables con `frozen=True` y validación con `__post_init__`
  • Elegir con criterio entre composición y herencia ("tiene un" contra "es un") y modelar el grafo de objetos de un dominio real
  • Aplicar herencia y polimorfismo para que distintos tipos de un mismo concepto (por ejemplo, tiers de membresía) calculen comportamiento distinto tras la misma interfaz
  • Diseñar contra interfaces con `typing.Protocol` (tipado estructural, duck typing) y con clases abstractas (`abc.ABC`) cuando se necesita una interfaz nominal
  • Implementar métodos dunder (`__repr__`, `__eq__`, `__hash__`, `__lt__`, `__len__`, `__iter__`, `__contains__`) para que un objeto se comporte como un tipo nativo de Python
  • Construir context managers propios con `__enter__` y `__exit__`
  • Distinguir cuándo usar una clase normal, una dataclass o un protocolo según lo que el dominio necesita expresar
  • Integrar todo el modelo de un dominio real —entidades, colecciones, servicio orquestador— en un sistema ejecutable y verificable

Antes de empezar

Qué necesitas traer

Es para ti si...

  • Desarrolladores Python de nivel intermedio que escriben código con funciones y diccionarios sueltos y quieren pasar a un diseño orientado a objetos real
  • Devs que usan clases mecánicamente pero nunca tuvieron un criterio claro para elegir entre composición y herencia
  • Personas que quieren entender `@dataclass`, `Protocol` y los métodos dunder más allá de copiar ejemplos sueltos de internet
  • Cualquiera preparando entrevistas técnicas donde se pregunta por diseño orientado a objetos, principios SOLID aplicados o cuándo preferir composición sobre herencia
  • Quien va a seguir con las guías hermanas de empaquetado o testing y necesita primero un modelo de dominio bien diseñado sobre el cual trabajar

Requisitos y materiales

  • Sintaxis básica de Python: variables, funciones, control de flujo, estructuras de datos
  • Nociones mínimas de clases (no es necesario haber diseñado un modelo de objetos serio antes)
  • Python 3.14 instalado; todo el código se ejecuta con la librería estándar, sin dependencias externas
  • No es necesario conocer diseño de bases de datos, testing con pytest ni empaquetado: esos temas viven en sus propias guías

Contenido

El temario, módulo por módulo

Abre cualquiera para ver sus lecciones.

Dónde encaja

Esta guía es parte de algo más grande

Se estudia dentro de estos programas, con acompañamiento y fechas.

Dudas frecuentes

Lo que suele preguntarse

Empieza cuando quieras

Reseñas

Lo que dicen los estudiantes

Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.

Aún no hay reseñas aprobadas.

¡Sé el primero en compartir tu experiencia!