Ho una domanda sull'attributo di classe in python.attributo della classe 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
I risultati sono diversi. Uso anche la funzione id() per trovare t2.derived_val e t2. class .derived_val hanno un diverso indirizzo di memoria. Il mio problema è derived_val è l'attributo di classe. Perché è diverso nell'esempio sopra? È perché l'istanza della classe copia il proprio valore derivato accanto all'attributo class?