Misiune vs Copie Superficială vs Copie Profundă în Python


Copie Superficială

O copie superficială construiește un nou compus obiect și apoi (în măsura posibilului) inserează referințe de obiecte găsite în original.

Avem trei moduri diferite de a crea o copie superficială:

Aici, toate listele de mai sus conține aceleași valori ca lista inițială:

>>> print(nums == m1 == m2 == m3)
True

cu toate Acestea, adresa de memorie de fiecare este diferit.,aceasta înseamnă că, de data aceasta, obiectul fiecărei liste are propria sa adresă de memorie independentă.acum trecem la partea mai interesantă. Dacă lista originală este un obiect compus (de exemplu, o listă de liste), atunci după o copie superficială, noile elemente de listă se referă în continuare la elementele originale.deci, dacă modificați elementele mutabile, cum ar fi listele, modificările vor fi reflectate pe elementele originale., Să ne uităm la exemplul de mai jos pentru a obține o mai bună înțelegere:

după Cum puteți vedea în exemplul de mai sus, în timp ce suntem modificarea intern lista de elemente în noua listă, este actualizat în lista inițială, de asemenea, pentru că a și b încă punctul de la aceeași adresă de memorie (lista inițială).

Astfel, noua listă b are propria adresă de memorie, dar elementele sale nu., Acest lucru se datorează faptului că, în copie superficială, în loc să copieze elementele listei la noul obiect, copiază pur și simplu referințele la adresele lor de memorie.prin urmare, în timp ce facem modificări la obiectul original, acesta se reflectă în obiectele copiate și invers.aceasta este o caracteristică a unei copii superficiale.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Sari la bara de unelte