View Single Post
Old 01-01-2010, 14:18   #1
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 6075
[Python] Attributi di classe

Ciao,
studiando Python, arrivato agli attributi di classe, ho letto che se definisco ad esempio:

Codice:
class prova():
      lista = [0,1]
      pass

A = prova()

B = prova()

A.lista[0] = 3
Facendo così, modifico anche la lista di B. In pratica, gli attributi di classe mutable non sono static, parlando alla C++. Quelli unmutable invece non hanno questo comportamento, in quanto viene creato un riferimento ad un nuovo oggetto unmutable :

Codice:
class prova():
    x = 10
    pass
Quindi potremmo dire che sono "statici",anche se le motivazioni sono differenti tra Python e C++. Ora, se fino a qua non ho detto fesserie , non ho capito il vantaggio di avere questa implementazione rispetto a quella stile C++ con attributi di classe statici o non statici. Quello che ho capito è che in Python non si dovrebbe mai modificare gli attributi di classe e gli attributi non statici (credo) sono rimpiazzati con attributi di istanza creati al volo. Cioè, in parole povere, perché non c'è una netta distinzione tra attributi statici e non statici?

Ultima modifica di Unrue : 01-01-2010 alle 14:24.
Unrue è offline   Rispondi citando il messaggio o parte di esso