Frogames Python Expert
Cursos Premium

Tu Primera Clase

Las Clases son los planos arquitectónicos del código. Aprende a modelar el mundo real con Programación Orientada a Objetos.

1. El Problema que Resuelven las Clases

Imagina que necesitas gestionar 50 agentes de IA, cada uno con su propio nombre, modelo y historial de conversaciones. ¿Crearías 50 diccionarios separados? Eso se llama código espagueti.

Una Clase es como un molde o plantilla. La defines una vez y puedes crear los Objetos (instancias) que necesites a partir de ella, todos con la misma estructura pero datos propios.

Analogía: La clase es el plano de una casa. El objeto es la casa construida a partir de ese plano. Puedes tener 10 casas (objetos) del mismo plano (clase), cada una con sus propios muebles (datos).

2. Definir tu Primera Clase

Usamos la palabra clave class. Por convención, los nombres de clases usan PascalCase (cada palabra con mayúscula).

class AgenteIA:
    """Un agente de IA con nombre y modelo configurables."""

    def __init__(self, nombre, modelo):
        # self.atributo = valor
        self.nombre = nombre
        self.modelo = modelo
        self.historial = []  # Cada agente tiene su propia historia

    def responder(self, pregunta):
        respuesta = f"[{self.nombre}] Procesando: {pregunta}"
        self.historial.append(respuesta)
        return respuesta


# Crear objetos (instancias) a partir de la clase
agente1 = AgenteIA("Atlas", "gpt-4o")
agente2 = AgenteIA("Nova", "claude-3-5-sonnet")

print(agente1.responder("¿Qué es el aprendizaje automático?"))
print(agente2.nombre)  # Nova

3. El Método __init__: El Constructor

El método __init__ (con doble guion bajo) es especial. Se ejecuta automáticamente cada vez que creas un objeto nuevo. Es tu oportunidad de inicializar todos los datos que ese objeto necesita desde el principio.

self

El primer parámetro siempre es self. Es la forma en que el objeto se refiere a sí mismo. Python lo pasa automáticamente; tú nunca lo escribes al llamar al método.

Atributos de instancia

Son las variables con self. dentro del constructor. Cada objeto tiene sus propias copias: agente1.nombre es independiente de agente2.nombre.

4. Métodos: Las Acciones del Objeto

Los métodos son funciones definidas dentro de la clase. Operan sobre los datos del objeto usando self.

class AgenteIA:
    def __init__(self, nombre, modelo):
        self.nombre = nombre
        self.modelo = modelo
        self.historial = []

    def responder(self, pregunta):
        """Genera una respuesta y la guarda en el historial."""
        respuesta = f"[{self.modelo}]: Respuesta a '{pregunta}'"
        self.historial.append(pregunta)
        return respuesta

    def ver_historial(self):
        """Muestra todas las preguntas anteriores."""
        if not self.historial:
            return "Sin conversaciones aún."
        return "\n".join(self.historial)

    def __repr__(self):
        """Representación legible del objeto."""
        return f"AgenteIA(nombre='{self.nombre}', modelo='{self.modelo}')"


agente = AgenteIA("Atlas", "gpt-4o")
agente.responder("¿Qué son los transformers?")
agente.responder("¿Cómo funciona RLHF?")
print(agente.ver_historial())
print(agente)  # Usa __repr__ automáticamente

¿Listo para convertirte en un Maestro?

Potencia tu carrera con el Máster Completo: Python de la A a la Z. Domina Ciencia de Datos, ML y Deep Learning.

Ver ahora