Want to create interactive content? It’s easy in Genially!

Get started free

5100_UD02_2.3

CESUR

Created on February 2, 2026

Start designing with a free template

Discover more than 1500 professional designs like these:

Customer Empathy Map

Squares Diagram

Customer Journey Map

HR Organizational Chart

SWOT PRO

Branching diagram

Fishbone Diagram

Transcript

Atributos de instancia
Atributos de clase
Acceso a los atributos de clase
Flexibilidad de los atributos
Atributos y rendimiento
Usos de atributos de clase

atributos de clase

Por el contrario, los atributos de clase se definen directamente en el cuerpo de la clase, fuera de cualquier método, y son compartidos por todas las instancias de esa clase. Existe una única copia del atributo de clase en memoria, independientemente del número de instancias creadas. Todos los objetos acceden al mismo valor cuando consultan un atributo de clase, y si se modifica a través de la clase misma (no de una instancia), el cambio se refleja para todas las instancias. Este mecanismo resulta útil para almacenar información común a todos los objetos, como constantes, contadores globales o configuraciones compartidas.

Atributos de instancia

Los atributos de instancia se definen dentro del método _init_ utilizando la referencia self, y cada objeto creado a partir de la clase mantiene su propia copia independiente de estos atributos. Cuando se crea una instancia mediante objeto = Clase(), Python ejecuta el método _init_ y asigna los valores especificados a self.atributo, creando datos específicos para ese objeto particular. Modificar un atributo de instancia en un objeto no afecta a los atributos de otras instancias, ya que cada una mantiene su propio espacio de memoria para almacenar sus datos. Este comportamiento resulta apropiado para representar características individuales que varían entre diferentes objetos de la misma clase.

flexibilidad de los atrubutos

Un patrón común en desarrollo profesional consiste en utilizar atributos de clase para definir valores por defecto que pueden ser sobrescritas en instancias específicas. Por ejemplo, una clase Configuracion podría tener timeout = 30 como atributo de clase, estableciendo un tiempo de espera por defecto de 30 segundos para todas las operaciones. Instancias específicas que requieran un timeout diferente pueden establecer self.timeout = 60, creando un atributo de instancia que oculta el valor por defecto sin afectar a otras instancias. Este patrón proporciona flexibilidad manteniendo valores sensatos por defecto.

atributos y rendimiento

La distinción entre ambos tipos de atributos afecta significativamente al consumo de memoria y al rendimiento de las aplicaciones. Los atributos de clase ocupan memoria una única vez independientemente del número de instancias, mientras que los atributos de instancia se replican en cada objeto. En aplicaciones que crean miles o millones de objetos, utilizar atributos de clase para datos compartidos puede suponer un ahorro sustancial de memoria. Sin embargo, debe considerarse que los atributos de clase no son thread-safe por defecto, lo que puede generar problemas en aplicaciones concurrentes si múltiples hilos modifican simultáneamente el mismo atributo de clase.

acceso a los atributos de clase

El acceso a los atributos de clase puede realizarse tanto a través de la clase misma (Clase.atributo) como a través de cualquier instancia (objeto.atributo). Sin embargo, existe una diferencia crucial en la modificación: si se asigna un valor a un atributo de clase a través de una instancia (objeto.atributo = valor), Python crea un nuevo atributo de instancia con ese nombre que oculta el atributo de clase para ese objeto específico, sin modificar el atributo de clase original. Para modificar realmente el atributo de clase y que el cambio afecte a todas las instancias, debe realizarse la asignación a través de la clase (Clase.atributo = valor).

usos atributos de clase

Los casos de uso típicos para atributos de clase incluyen contadores que registran el número total de instancias creadas, configuraciones por defecto que pueden ser sobrescritas en instancias específicas, constantes que definen valores fijos utilizados por todos los objetos, y referencias a recursos compartidos como conexiones a bases de datos o configuraciones de aplicación. Por ejemplo, una clase Empleado podría tener un atributo de clase empresa = 'TechCorp' que almacena el nombre de la empresa para todos los empleados, mientras que cada empleado tendría atributos de instancia individuales como nombre, salario y departamento.