Atributos de instancia frente a atributos de clase
Distinga entre los datos propios de cada objeto y los datos compartidos a nivel de clase.
Atributos de instancia frente a atributos de clase es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.
Introducción
Atributo de clase
class Dog:
legs = 4
print(Dog.legs)
print(Dog().legs)Atributo de instancia
class Dog:
def __init__(self, name):
self.name = name
d1 = Dog('Rex')
d2 = Dog('Buddy')
print(d1.name, d2.name)Orden de búsqueda de atributos
class C:
x = 10
c = C()
c.x = 99 # instance shadows class attr
print(c.x) # 99
print(C.x) # 10Trampa de los atributos de clase mutables
class C:
items = []
C.items.append(1)
print(C().items) # [1] — shared!Solución para la trampa de los mutables
class C:
def __init__(self):
self.items = []
c1 = C(); c2 = C()
c1.items.append(1)
print(c1.items, c2.items)Inspección de __dict__
class Dog:
legs = 4
def __init__(self, name): self.name = name
d = Dog('Rex')
print(d.__dict__)
print(Dog.__dict__.keys())Métodos de clase como fábricas
class Date:
def __init__(self, y, m, d): self.y,self.m,self.d=y,m,d
@classmethod
def from_string(cls, s):
y,m,d=map(int,s.split('-'))
return cls(y,m,d)
dt=Date.from_string('2024-01-15')
print(dt.y,dt.m,dt.d)Métodos estáticos
class MathUtils:
@staticmethod
def add(a, b): return a + b
print(MathUtils.add(3, 4))Seguimiento de instancias con un atributo de clase
class Widget:
count = 0
def __init__(self):
Widget.count += 1
Widget(); Widget(); Widget()
print(Widget.count)hasattr() y vars()
class P:
def __init__(self, x): self.x = x
p = P(5)
print(hasattr(p, 'x'), hasattr(p, 'z'))
print(vars(p))Comprobación rápida
Repaso
Continúe
Preguntas frecuentes
¿La lección «Atributos de instancia frente a atributos de clase» es gratis?
Sí — el texto completo de «Atributos de instancia frente a atributos de clase» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Atributos de instancia frente a atributos de clase»?
Distinga entre los datos propios de cada objeto y los datos compartidos a nivel de clase. Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Python Academy?
No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Atributos de instancia frente a atributos de clase»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Python Academy?
Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Clases y el método __init__
- Atributos de instancia frente a atributos de clase
- Métodos de instancia y self
- Métodos mágicos: __str__ y __repr__