No history yet

Clases y Objetos

Clases y Objetos: Los Planos del Código

En la programación, a menudo queremos modelar cosas del mundo real. Podría ser un usuario, un producto, un coche o incluso un perro. La Programación Orientada a Objetos (POO) nos da una forma de hacer esto organizando nuestro código de una manera que imita cómo vemos el mundo.

Piensa en una clase como el plano para construir una casa. El plano define cómo será la casa: cuántas habitaciones tendrá, dónde estarán las ventanas, etc. Un objeto, por otro lado, es la casa real que construyes a partir de ese plano. Puedes construir muchas casas (objetos) a partir de un solo plano (clase), y cada casa puede tener sus propias características únicas, como un color de pintura diferente.

Definiendo una Clase

Una clase es una plantilla para crear objetos. Agrupa datos (llamados atributos) y funciones (llamadas métodos) en una sola unidad. Para definir una clase en Python, usamos la palabra clave class.

# Definimos una clase llamada Perro
class Perro:
    # El método especial __init__ se llama cuando se crea un objeto
    # También se le conoce como el constructor
    def __init__(self, nombre, edad):
        # Atributos: características de cada perro
        self.nombre = nombre
        self.edad = edad

    # Método: una acción que el perro puede realizar
    def ladrar(self):
        return f"¡Guau! Me llamo {self.nombre}"

Vamos a desglosar este código:

  • class Perro:: Esto crea una nueva clase llamada Perro.
  • def __init__(self, nombre, edad):: Este es un método especial llamado constructor. Se ejecuta automáticamente cada vez que creamos un nuevo objeto Perro. La palabra self se refiere al objeto específico que se está creando.
  • self.nombre = nombre y self.edad = edad: Estos son atributos. Almacenan los datos para cada objeto Perro. Asignan los valores de nombre y edad que pasamos al crear el objeto a ese objeto en particular.
  • def ladrar(self):: Este es un método. Es una función que pertenece a la clase y define un comportamiento que los objetos Perro pueden realizar.

Creando Objetos

Una vez que tenemos nuestro plano (la clase Perro), podemos crear perros reales (objetos). Este proceso se llama instanciación. Para instanciar un objeto, llamamos a la clase como si fuera una función, pasando los argumentos que el método __init__ espera.

# Creamos dos objetos (instancias) de la clase Perro
mi_perro = Perro("Fido", 5)
otro_perro = Perro("Rex", 2)

# Cada objeto tiene sus propios atributos
print(mi_perro.nombre)  # Salida: Fido
print(otro_perro.nombre) # Salida: Rex

# También podemos llamar a sus métodos
print(mi_perro.ladrar()) # Salida: ¡Guau! Me llamo Fido

Aquí, mi_perro y otro_perro son dos objetos distintos, aunque ambos se crearon a partir de la misma clase Perro. Cada uno tiene su propio conjunto de atributos (nombre y edad). Piensa en ellos como dos casas construidas con el mismo plano, pero una pintada de azul y la otra de rojo.

ConceptoAnalogíaPropósito
ClasePlano de una casaDefine la estructura y el comportamiento.
ObjetoUna casa realUna instancia específica de una clase con datos propios.
AtributoColor de la puertaUna variable que almacena datos de un objeto.
MétodoAbrir la puertaUna función que define una acción de un objeto.

Entender la diferencia entre la plantilla (clase) y la instancia real (objeto) es fundamental en la programación orientada a objetos. Te permite crear código organizado, reutilizable y que modela problemas complejos de una manera intuitiva.

Quiz Questions 1/5

¿Cuál es la mejor analogía para la relación entre una clase y un objeto en la programación orientada a objetos?

Quiz Questions 2/5

En una clase de Python, ¿cuál es el propósito del método especial __init__(self, ...)?