Hasta ahora tus datos (un gasto) y tu lógica (calcular su IVA) vivían separados: un diccionario por aquí,
una función por allá. La PROGRAMACIÓN ORIENTADA A OBJETOS (POO) los une: un OBJETO junta los DATOS y el
COMPORTAMIENTO de una "cosa" en una sola pieza. Una CLASE es el molde para crear esos objetos. Es la forma
de modelar el mundo —un gasto, un usuario, una cuenta— y la base de casi todo software grande. Hoy creas
tus primeras clases.
El molde y las galletas
Definir una clase y crear objetos
class Gasto: define el molde. El método __init__ (el CONSTRUCTOR) se ejecuta automáticamente cada vez
que creas un objeto, y ahí guardas los datos iniciales en self. Creas un objeto llamando a la clase como
si fuera una función: Gasto("Café", 4000). Cada objeto lleva SUS propios datos (cafe.nombre es "Café",
bus.nombre es "Bus") y responde a los métodos definidos (cafe.con_iva()). Un objeto = datos +
comportamiento, juntos.
self y el constructor
¿Qué es una clase, qué hace __init__ y qué representa self?
Mini-reto
Crea tu primera clase para Mi Bolsillo: 1) define una clase Gasto con __init__ que reciba nombre,
valor y categoria, guardándolos en self; 2) agrega un método con_iva(self) que devuelva el valor
con IVA, y un método descripcion(self) que devuelva un f-string tipo "Café: 4,000 (comida)"; 3) crea
dos o tres objetos Gasto distintos y llama a sus métodos. Comprueba que cada objeto tiene sus propios
datos.
Qué sigue
Ya creas objetos con datos y comportamiento. La próxima lección profundiza en los ATRIBUTOS y MÉTODOS:
la diferencia entre atributos de instancia (propios de cada objeto) y de clase (compartidos por todos), y
cómo diseñar el comportamiento de tus objetos. La base para modelar cosas más ricas.