Italian subtitles

← cs101_unit3_09_l_yello-mutation

spiegazione - yello mutazione

Get Embed Code
7 Languages

Showing Revision 2 created 08/01/2014 by Fran Ontanaya.

  1. Finora ad ora abbiamo detto che la mutazione
  2. modifica un oggetto esistente.
  3. Ma non si può ancora vedere la differenza evidente con quello che facciamo con le stringhe.
  4. Vedremo bene questa differenza quando introdurremo una nuova variabile.
  5. Torniamo all'esempio precedente,
  6. aggiungeremo ora un ulteriore assegnazione di variabile,
  7. introducendo una nuova variabile.
  8. Supponiamo di introdurre la viaribile 'q' .
  9. Ed assegniamo 'p' a 'q' , che significa che il valore di 'p' ,
  10. che sarebbe questo oggetto lista,
  11. fa ora riferimento a 'q' .
  12. La cosa importante qui avviene dopo l'assegnazione,
  13. 'p' e 'q' si riferiscono alla stessa lista.
  14. Supponiamo di aver fatto una assegnazione
  15. per modificare il valore di uno degli elementi di 'q' .
  16. Bhé, questo cambierà l'elemento quattro di 'q' ,
  17. quindi questo è l'elemento quattro di 'q' .
  18. Cambierà il valore
  19. con il punto esclamativo.
  20. Cambierà anche il valore di 'p' .
  21. Ma l'assegnazione non contiene in alcun modo 'p' ,
  22. il fatto che 'p' e 'q' si riferiscano allo stesso oggetto
  23. significa che è cambiato il valore di 'p' .
  24. Per vedere come questo si comporti diversamente con le stringhe
  25. proviamo a farlo con una stringa.
  26. Vedete se riuscite ad indovinare cosa succede se assegniamo
  27. un nuovo valore alla prima lettera della stringa.
  28. Lanciamo il programma per vedere cosa succede.
  29. Quello che otteniamo è un errore,
  30. poiché la stringa è un oggetto immutabile.
  31. Non c'è modo di cambiare il valore di una stringa,
  32. e l'errore ci dice che non è possibile fare assegnazioni all'interno di una stringa,
  33. a causa del tipo di oggetto, poiché è immutabile, non accetta l'assegnazione.
  34. Una delle differenze principali tra oggetti mutabili e immutabili
  35. è che se un oggetto è mutabile
  36. dobbiamo fare attenzione alle altre variabili che potrebbero far riferimento allo stesso oggetto.
  37. Possiamo cambiare il valore dell'oggetto,
  38. e ciò cambierà non solo la variabile a cui noi pensiamo faccia riferimento
  39. bensì tutte le altre variabili assegnate allo stesso oggetto.
  40. Vediamo un esempiio.
  41. Ho inizializzato 'p' assegnandolo alla lista che contiene 'Hello' .
  42. Ora ho un'assegnazione che introduce la nuova variabile 'q'
  43. e che assegna 'p' a quella variabile.
  44. Stampiamo ora il valore di 'p' e 'q' ,
  45. e vedremo che entrambe conterranno la stringa 'Hello' .
  46. Cambiamo ora il valore della posizione zero.
  47. Avremmo una assegnazione che memorizza
  48. nella posizione zero di 'p' la lettera 'y' .
  49. Questo cambia il valore di 'p' .
  50. Cosa sorprendente potrebbe essere che questo cambia anche il valore di 'q' .
  51. Anche se 'q' non compare nell'assegnazione ,
  52. lo cambia in quanto 'q'
  53. si riferisce allo stesso oggetto di 'p' .