U4 · Programación orientada a objetos¶
Leer el resumen
En esta unidad pasas del código suelto a la programación orientada a objetos. Una clase es un molde, y un objeto es cada cosa creada con ese molde. Cada clase tiene atributos, que son sus datos, y métodos, que son lo que sabe hacer. Aprenderás a crear objetos con constructores, a validar los datos al crearlos, y a proteger los atributos con el encapsulamiento, para que nadie los cambie de cualquier manera. También guardarás colecciones de objetos. Y terminas con un proyecto propio.
Pasar del código suelto a clases y objetos: atributos, métodos, constructores, validación, encapsulamiento y colecciones de objetos. Termina con un proyecto personal o en grupo.
Teoría¶
- 4.A Clases y objetos: atributos, métodos, constructor y referencias.
- 4.B Encapsulamiento: visibilidad, validación, propiedades e igualdad.
- 4.C Constructores y enumerados: varias formas de crear un objeto y tipos cerrados.
- 4.D Colecciones y miembros estáticos: objetos que contienen objetos y lo que pertenece a la clase.
- 4.E Del problema al programa: cómo decidir las clases y pasar comportamiento como parámetro.
Antes de empezar: qué debes dominar¶
- Clase, objeto, atributo y método.
- Constructores (principal y alternativos) y valores por defecto.
- Encapsulamiento: visibilidad y propiedades de solo lectura.
- Enumerados, sobrecarga y
toString/igualdad. - Colecciones de objetos y validación con excepciones.
Ejercicios de la unidad¶
Equivalencias de POO en Python¶
| Idea | En Python |
|---|---|
| Constructor | def __init__(self, ...) (solo uno; varias formas con valores por defecto o @classmethod) |
| Propiedad calculada de solo lectura | @property def imc(self): ... |
| Privado | por convención, nombre que empieza por _ |
| Validar al crear | raise ValueError(...) en __init__ |
| Herencia | class B(A):, con super().__init__(...) |
| Clase abstracta | from abc import ABC, abstractmethod |
| Enumerado | from enum import Enum |
| Datos con igualdad por valor | @dataclass (módulo dataclasses) |
| Parámetro por defecto | def agregar(self, cantidad=200) |
| Representación en texto | __str__ |
| Igualdad | __eq__ |
Antes de pasar a los ejercicios¶
Cuando hayas leído y practicado la teoría, marca la casilla para desbloquear los ejercicios de esta unidad: