Cómo usar clases en Python
¿Alguna vez te has preguntado cómo organizar mejor tu código cuando empieza a crecer? ¿Te has topado con palabras como clase, objeto o POO y no sabes por dónde empezar?
Hoy es el día en que todo eso empieza a tener sentido.
Prepárate, porque vamos a crear nuestra primera clase en Python como unos auténticos programadores.
¿Qué es una clase en Python?
Una clase en programación orientada a objetos (POO) es como un molde.
Un molde que te permite crear objetos con ciertas características y comportamientos.
Imagina que quieres representar un coche. Cada coche tiene marca, modelo y puede arrancar o detenerse.
En lugar de repetir ese mismo código cada vez, defines una clase y de ahí puedes crear todos los coches que quieras.
¿Y un objeto?
Es simplemente una instancia específica de esa clase. Si la clase es “Coche”, tutesla_model_3es un objeto.
¿Por qué usar clases en python?
Porque a medida que tu código crece, se vuelve más difícil de leer y mantener.
Con clases puedes agrupar lógica relacionada y reutilizarla sin volverte loco.
Beneficios clave:
- Organización del código
- Reutilización
- Escalabilidad
- Lectura más clara
Sintaxis básica: creando tu primera clase en python
Vamos con la estructura más sencilla para crear una clase.
class Coche:
def __init__(self, marca, modelo):
self.marca = marca
self.modelo = modelo
self.arrancado = False
💡 Puedes seguir esta guía completa para instalar python en windows sin complicaciones, incluso si nunca antes lo has hecho.
Vamos por partes…
class Coche:→ Define una nueva clase llamada Coche.def __init__: Es el constructor, se ejecuta automáticamente al crear un objeto.self: Hace referencia al objeto en sí.self.marca = marca: Asigna el valor demarcaal atributo del objeto.
¡Ojo! Los métodos que empiezan y terminan con doble guión bajo (
__init__) son especiales en Python.
Se llaman métodos mágicos o “dunder methods”.
Creando un objeto (instancia)
Ya tienes el molde. Ahora… ¡a crear coches!
laguna = Coche("Renault", "Laguna")
tesla = Coche("Tesla", "Model 3")
Aquí, laguna y tesla son objetos de tipo Coche.
¿Quieres comprobarlo?
print(type(laguna)) # <class '__main__.Coche'>
print(laguna.marca) # Renault
print(tesla.modelo) # Model 3
¡Y listo! Has creado tus primeros objetos personalizados.
💡 Si buscas una forma rápida de empezar sin instalar nada en tu equipo, explora esta guía sobre google colab python.
Agregando funcionalidad: métodos
Ya definimos atributos, pero ahora toca agregar comportamientos.
Veamos cómo hacer que nuestros coches puedan arrancar y parar.
class Coche:
def __init__(self, marca, modelo):
self.marca = marca
self.modelo = modelo
self.arrancado = False
def arrancar(self):
self.arrancado = True
print(f"{self.marca} {self.modelo} ha arrancado.")
def parar(self):
self.arrancado = False
print(f"{self.marca} {self.modelo} se ha parado.")
Probémoslo
laguna.arrancar() # Renault Laguna ha arrancado.
print(laguna.arrancado) # True
laguna.parar() # Renault Laguna se ha parado.
print(laguna.arrancado) # False
¿Lo ves? Ahora tu objeto hace cosas.
Es como darle vida a una variable.
Accediendo a atributos y métodos
Para acceder a un atributo o llamar un método, simplemente usa el punto (.).
print(tesla.marca) # Tesla
tesla.arrancar() # Tesla Model 3 ha arrancado.
Así de simple.
¿Qué es self exactamente?
Buena pregunta. self es simplemente una referencia al propio objeto que se está creando o manipulando.
Gracias a self puedes acceder a los atributos y métodos desde dentro de la clase.
En otras palabras:
selfes como decir “yo mismo”.
💡 Aquí tienes una recopilación de ideas de aplicacciones python que te pueden servir como punto de partida para tus propios proyectos.
¿Puedo tener múltiples objetos?
¡Por supuesto!
auto1 = Coche("Ford", "Focus")
auto2 = Coche("Chevrolet", "Spark")
auto3 = Coche("Hyundai", "Elantra")
autos = [auto1, auto2, auto3]
for auto in autos:
auto.arrancar()
Cada uno de estos autos es independiente, pero todos comparten la misma estructura de clase.
Sigue aprendiendo con el siguiente contenido: