Matala Kopio
matala kopio rakentaa uusi yhdiste objektia ja sitten (siinä määrin kuin mahdollista) lisää viittauksia siihen, että esineitä löytyy alkuperäinen.
– Meillä on kolme eri tapaa luoda matala kopio:
Tässä, kaikki edellä mainitut luettelot sisältävät samoja arvoja kuin alkuperäinen lista:
>>> print(nums == m1 == m2 == m3)
True
Kuitenkin, muistin osoite, jokainen on erilainen.,
tämä tarkoittaa, että tällä kertaa jokaisen listan kohteella on oma, itsenäinen muistiosoite.
nyt siirrytään kiinnostavampaan osaan. Jos alkuperäinen luettelo on yhdistelmäobjekti (esim.luettelo luetteloista), pinnallisen kopion jälkeen uudet listaelementit viittaavat edelleen alkuperäisiin alkuaineisiin.
niin, jos muokattavia elementtejä kuten listoja muutetaan, muutokset heijastuvat alkuperäisiin elementteihin., Katsotaanpa alla esimerkki, niin saat paremman käsityksen:
Kuten näet yllä olevassa esimerkissä, kun me on muuttaa sisäistä luettelo elementit uudessa luettelossa, se on päivitetty alkuperäisessä listassa myös koska a
ja b
silti viitata samaan muistipaikkaan osoite (alkuperäinen lista).
Joten, new list b
on oma muisti osoite, mutta sen elementit eivät., Tämä johtuu siitä, että matala kopio, sen sijaan, kopioimalla listan elementtejä uusi esine, se yksinkertaisesti kopioi viittaukset niiden muisti osoitteita.
siksi, kun teemme muutoksia alkuperäiseen objektiin, se heijastuu kopioituihin objekteihin ja päinvastoin.
Tämä on pinnallisen kopion ominaisuus.