AnyCompiler

Clases y Objetos

Una clase es un plano para crear objetos que agrupan datos (atributos) junto con las funciones que operan sobre esos datos (métodos). Cada perro que crees a partir de una clase Dog comparte la misma estructura, pero guarda sus propios valores.

class Dog:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def bark(self):
        return f"{self.name} says Woof!"

my_dog = Dog("Rex", 3)
print(my_dog.name)
print(my_dog.bark())
Output
Rex
Rex says Woof!
  • __init__ se ejecuta automáticamente cuando creas un nuevo objeto — es donde configuras los datos iniciales del objeto
  • self hace referencia al objeto concreto sobre el que se está llamando el método — siempre es el primer parámetro de un método
  • self.name = name guarda el valor como un atributo, así cualquier método de este objeto puede acceder a él después
  • Dog("Rex", 3) crea un objeto real (una "instancia") de la clase Dog

Podrías crear tantos perros como quisieras a partir de la misma clase — Dog("Bella", 5), Dog("Max", 1) — cada uno manteniendo su propio nombre y edad de forma independiente.

Siguiente: módulos — usar la librería estándar de Python en vez de escribir todo desde cero.

Ejercicio de práctica

Añade un método honk() a la clase Car que devuelva f"{self.make} says beep!", y luego imprime el resultado de llamarlo en un Car("Toyota").