Repaso
English
PythonAvanzadoPY-10

¿Cuál es el efecto principal de definir __slots__ = ("x", "y") en una clase?

Opciones

  1. Hace que las instancias sean inmutables, así que ningún atributo se puede reasignar
  2. Elimina el __dict__ de cada instancia, ahorra memoria y fija los atributos (Opción correcta)
  3. Hace la clase thread-safe bloqueando cada acceso a un atributo
  4. Convierte la clase en una dataclass con métodos generados

Respuesta

Elimina el __dict__ de cada instancia, lo que ahorra memoria y bloquea atributos nuevos

Por qué

Normalmente cada objeto guarda sus atributos en su propio diccionario (__dict__), y eso cuesta memoria.

Con __slots__, Python reserva espacios fijos solo para los nombres listados y elimina ese diccionario.

Resultado: menos memoria por objeto (útil si tienes millones) y no puedes añadir otros atributos por error.

Recuerda

__slots__ = menos memoria y un conjunto fijo de atributos.

Términos clave

Practica esta pregunta en Repaso