Cómo usar clases en Python

Alex Jimenez
Alex Jimenez
May 14, 2025


¿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.

como usar clases en python

¿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”, tu tesla_model_3 es 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 de marca al 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: self es 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:

📖
Condicionales en Python
📖
Igualdad e Identidad en Python
📖
Diccionarios en Python
📖
Operador Ternario en Python
📖
Igualdad e Identidad en Python