馃敀 1. Encapsulamiento
Es un principio de la programaci贸n orientada a objetos que protege los datos internos de una clase, restringiendo el acceso directo a ellos.
馃И Ejemplo:
¿Qu茅 significa __nombre?
El doble gui贸n bajo convierte el atributo en privado, es decir, no se puede acceder directamente desde fuera de la clase (usuario.__nombre dar谩 error).
馃憠 Se accede mediante m茅todos p煤blicos, como obtener_nombre().
馃彿️ 2. Uso de @property y @setter
Permite controlar c贸mo se accede y modifica un atributo, manteniendo la sintaxis simple como si fuera p煤blico.
馃И Ejemplo:
Ventaja:
Permite hacer validaciones al asignar o leer atributos, manteniendo una interfaz clara:
馃攣 3. M茅todos Especiales (Magic Methods)
Son m茅todos que comienzan y terminan con __. Python los usa para sobrecargar operadores y personalizar comportamientos.
✅ Ejemplos 煤tiles:
| M茅todo | ¿Qu茅 hace? |
|---|---|
__str__ | Representaci贸n en print() |
__len__ | Permite usar len(obj) |
__eq__ | Permite usar obj1 == obj2 |
__add__ | Permite usar obj1 + obj2 |
馃И Ejemplo de __str__:
馃П 4. Principios SOLID aplicados a Python
Estos principios ayudan a dise帽ar c贸digo mantenible, limpio y escalable.
馃З Explicaci贸n de cada uno:
-
S – Single Responsibility
Cada clase debe tener una 煤nica responsabilidad. No mezcles l贸gica de base de datos con l贸gica de interfaz, por ejemplo. -
O – Open/Closed
Las clases deben estar abiertas a extensi贸n pero cerradas a modificaci贸n. Usa herencia o composici贸n en lugar de cambiar c贸digo existente. -
L – Liskov Substitution
Una subclase debe poder reemplazar a su clase padre sin alterar el comportamiento del programa. -
I – Interface Segregation
No fuerces a una clase a implementar m茅todos que no necesita. Divide interfaces en bloques m谩s peque帽os si hace falta. -
D – Dependency Inversion
No dependas de clases concretas, sino de abstracciones. Usa interfaces o clases base cuando sea posible.
馃彟 5. Ejemplo completo con todo lo aprendido
-
Usa encapsulamiento (
_saldo) -
Tiene m茅todos claros y separados
-
Usa
__str__para mostrar el objeto de forma legible -
Cumple con el principio SRP (una clase → una tarea)