Manlio Perillo ha scritto: > Esatto. > Ma io sostituirei "variabile" con "oggetto". > > True =) > La risposta è semplice: `a` e `b` rappresentano lo stesso oggetto. > Questa è la conseguenza di una ottimizzazione di CPython (la > implementazione ufficiale di Python): gli interi "piccoli" sono > conservati in cache, in modo da evitare allocazioni aggiuntive. > > Contro esempio: > > >>>> a = 9999 >>>> b = 9999 >>>> a is b >>>> > False > > >>>> a = 10 >>>> b = 10 >>>> a is b >>>> > True > > > Grazie della risposta chiarissima. Immaginavo una cosa del genere. =) > Non hai chiaro come funzionano le "variabili" in Python. > http://docs.python.org/reference/executionmodel.html#naming-and-binding > > Le variabili sono semplici referenze ad oggetti; sono delle "etichette" > che permettono di riferirsi ad un dato oggetto. > > Si. Ciò che non mi è chiaro è come vengono assegnati: ho sempre dato per scontato che ci fosse una corrispondenza biunivoca tra variabile e oggetto. Grazie del link, lo leggo subito.
> > Cosa ha di diverso questo esempio rispetto al primo che hai fatto? > Beh, mentre immaginavo più o meno cosa accadesse nel caso delle variabili dallo stesso valore; ma il cambiare indirizzo è una cosa che mi ha fatto rimanere un pò allibito. Mi rendo conto comunque che sia perché non penso in termini di divisione *netta* tra la variabile e l'oggetto. =) Grazie della risposta, -- Francesco Ciracì - Sydarex _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python