Capacitación práctica de Programación Orientada a Objetos con Python moderno.
Cada módulo combina teoría en Markdown con ejercicios progresivos para afianzar los conceptos.
Al completar esta capacitación, serás capaz de:
- Diseñar modelos de dominio en Python usando clases y objetos
- Aplicar los pilares de la POO: encapsulación, herencia, polimorfismo y abstracción
- Aprovechar características propias de Python: duck typing, dataclasses y
abc - Aplicar los principios SOLID en código real
- Usar patrones de diseño idiomáticos en Python
- Escribir clases limpias, bien diseñadas y mantenibles
A desarrolladores con conocimiento intermedio de Python que quieran incorporar o consolidar el paradigma orientado a objetos con buenas prácticas y enfoque práctico.
poo-python/
│
├── 01-fundamentos/
├── 02-encapsulacion/
├── 03-herencia-y-composicion/
├── 04-polimorfismo-y-duck-typing/
├── 05-abstraccion/
├── 06-dataclasses-y-pydantic/
├── 07-relaciones-entre-objetos/
├── 08-principios-solid/
└── 09-patrones-de-diseno/
Cada carpeta contiene:
README.md— teoría del módulo con ejemplosejercicios/— enunciados de los ejerciciossoluciones/— soluciones de referencia (¡intenta resolverlos antes de mirar!)
| # | Módulo | Conceptos clave |
|---|---|---|
| 01 | Fundamentos de POO en Python | Clases, objetos, __init__, métodos, self |
| 02 | Encapsulación | _atributo, __atributo, @property, validación |
| 03 | Herencia y composición | Herencia simple y múltiple, super(), composición |
| 04 | Polimorfismo y duck typing | Duck typing, métodos mágicos (__str__, __add__...) |
| 05 | Abstracción | Módulo abc, clases abstractas, interfaces informales |
| 06 | Dataclasses y Pydantic | @dataclass, frozen=True, Pydantic models, validación de datos |
| 07 | Relaciones entre objetos | Asociación, agregación, composición |
| 08 | Principios SOLID | SRP, OCP, LSP, ISP, DIP con ejemplos en Python |
| 09 | Patrones de diseño | Strategy, Factory, Singleton, Observer |
- Clona el repositorio:
git clone https://gitlab.com/<tu-grupo>/poo-python.git
cd poo-python- Empieza por el módulo 01 y avanza en orden. Cada
README.mdindica los prerrequisitos del módulo.
- Python 3.10 o superior
pydanticpara el módulo 06:
pip install pydantic- El código sigue PEP 8
- Los nombres de clases usan
PascalCase - Los métodos y atributos usan
snake_case - Cada ejercicio tiene su propio archivo con el formato
ejercicio_XX.py
¿Encontraste un error o quieres mejorar algún ejercicio? Abre un issue o una merge request. ¡Toda mejora es bienvenida!
💡 Consejo: no saltes directamente a las soluciones. El valor está en intentar resolver cada ejercicio por tu cuenta primero.