Salve a tutti, ho un problema "teorico". Se eseguo il seguente codice:
class pippo():
def __init__(self, pezzo):
self.pezzo = pezzo
a = pippo(10)
b = a
a.pezzo = 5
print b.pezzo
... otterrò come risultato 5, perché a e b si riferiscono esattamente
allo stesso oggetto, che è stato modificato. Fin qui tutto bene (anche
se ci ho messo un po' a capirlo).
Però se dò il seguente codice:
a = 10
b = a
a = 5
print b
... ottengo invece come risultato 10, perché a e b si riferiscono a due
oggetti diversi.
Ovviamente non trovo affatto scandaloso (semplicemente perché ci
semplifica assai le cose) che il simbolo = la prima volta significhi
"indica lo stesso oggetto" e la seconda "fai una copia dell'oggetto". Il
problema è: ho notato che anche con le stringhe si ricade nel secondo
caso ("fai una copia"); esistono altri tipi di dato per cui la cosa
funziona così? C'è una classificazione precisa dei tipi in base al
comportamento di "="?
O semplicemente l'"=" significa sempre "fai una copia" tranne nel caso
di classi?
Anche solo un link per delucidarmi un po' le idee sarebbe molto gradito.
grazie, ciao
Pietro
_______________________________________________
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python