tengo una pregunta sobre el atributo de clase en python.atributo de clase python
class base :
def __init__ (self):
pass
derived_val = 1
t1 = base()
t2 = base()
t2.derived_val +=1
t2.__class__.derived_val +=2
print t2.derived_val # its value is 2
print t2.__class__.derived_val # its value is 3
Los resultados son diferentes. También uso la función id() para encontrar t2.derived_val y t2. clase .derived_val tienen una dirección de memoria diferente. Mi problema es derivado_val es el atributo de clase. ¿Por qué es diferente en el ejemplo anterior? ¿Es porque la instancia de clase copia su propio derived_val al lado del atributo de clase?