
Clases y objetos en Python con un zorrito: programación orientada a objetos esencial: chisme 76 del Lince
El Lince de la Noche estaba en su cueva de Sierra Bermeja cuando apareció un zorrito. Se llamaba Rufo, ladraba, se ensuciaba y se agotaba yendo a por piñas del pinsapar.
—Voy a programarlo —dijo el Lince—. Crearé rufo_energia, rufo_suciedad, canela_energia…
—¿Y cuando aparezcan veinte zorritos? —preguntó la Gata Montesa.
—…Escribiré veinte veces lo mismo.
—Mejor haz un molde. Lo describes una vez y de él salen tantos zorritos como quieras.
Clases y objetos en Python.
Introducción: claves y objetos en Python
Ese molde se llama clase, y es la idea central de la programación orientada a objetos. En este chisme del Lince vas a verla funcionar: a la izquierda de la página está el código Python que se ejecuta de verdad y a la derecha, el zorrito que lo obedece. Cada línea que se ejecuta se resalta, cada propiedad que cambia se ve en una barra y cada método que llamas hace que Rufo ladre, coma, se ensucie o vaya a por una piña.
Abrir el chisme 76: Rufo, el zorrito
Por qué este chisme
Las clases, los objetos, la herencia o el polimorfismo suelen explicarse con definiciones abstractas. Aquí cada concepto aparece cuando el zorrito lo necesita: se crea el primer objeto, hay que enseñarle a hacer cosas, hay que impedir que alguien le ponga energía 500 y, al llegar el Lince, se descubre que repetir código es innecesario.
Cómo funciona
La página descarga Pyodide, un intérprete de Python compilado a WebAssembly, y lo ejecuta dentro del navegador. Un pequeño vigilante anota cada línea que se ejecuta y el estado de los objetos en ese momento, y después la página lo reproduce despacio. El código no sale de tu ordenador y no se guarda nada fuera de él. Un límite de pasos evita que un bucle infinito bloquee la página, y los errores de Python se traducen a mensajes claros.
Los cuatro niveles
- Clases y objetos.
Zorritoes el molde;rufoycanelason objetos con sus propias propiedades. - Métodos y constructor.
comer(),ladrar(),traer_pina()ylimpiar();__init__prepara cada zorrito yselfes el propio objeto. - Ocultación y listas. La energía pasa a ser privada y solo se cambia con métodos que comprueban los límites. La mochila es una lista que se recorre con un
for. - Herencia y polimorfismo.
Zorrito(Animal)yLince(Animal)heredan lo común y sustituyenhacer_ruido(); un bucle sobre la lista de animales hace que cada uno suene a su manera.
Qué estamos viendo realmente
Un objeto es un conjunto de datos (propiedades) con las funciones que los manejan (métodos). Dos objetos de la misma clase comparten el molde pero no los valores. La ocultación no es magia: en Python el doble guion bajo cambia el nombre interno de la propiedad, por eso rufo.__energia falla desde fuera. Y el zorrito no siente nada: su energía es un número en un programa.
Para el aula
- Antes de ejecutar, predice qué escribirá o cuánto valdrá cada propiedad, y comprueba la predicción.
- Dibuja en papel el diagrama de clases de Animal, Zorrito, Lince y Buho.
- Cambia la energía que gasta traer_pina() y observa qué cambia. ¿Hay que tocar los objetos o la clase?
- Discute: ¿qué problemas tendría el programa si la energía no fuera privada?
- Propón otra jerarquía: Vehículo, Coche y Bicicleta; Instrumento, Guitarra y Tambor.
Retos
- Crea el tercer zorrito,
ceniza, con energía 30. - Añade el método
dormir()que suba la energía en 30. - Limita la mochila a 3 objetos: si está llena, que escriba «mochila llena».
- Crea la clase
Buho(el Búho Neurólogo) con su propiohacer_ruido()y añádelo a la lista de animales. - Reto extra: haz que un animal con energía 0 se niegue a trabajar.
La página comprueba los cuatro primeros con el código que escribas y genera un informe imprimible.
Qué hemos aprendido
Una clase es un molde, un objeto es un ejemplar, el constructor lo prepara, la ocultación lo protege, la herencia evita repetir y el polimorfismo permite dar la misma orden a objetos distintos. Y se aprende mucho más viendo ejecutarse el código línea a línea que leyendo la definición.
Prototipo educativo de MonteSteam. Python se descarga de internet la primera vez (unos 10 MB) y después se ejecuta en tu navegador.




