Oppdrag vs. grunn Kopi vs. Dyp Kopi i Python


Grunne Kopi

En grunn kopi konstruerer en ny sammensatt objekt og deretter (i den grad det er mulig) setter inn referanser i det å gjenstandene som finnes i den opprinnelige.

Vi har tre forskjellige måter å opprette en grunn kopi:

Her, alle de ovennevnte listene inneholder de samme verdiene som den opprinnelige listen:

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

Men minnet adressen til hver er forskjellig.,

Dette betyr at denne tiden, hver liste er objekt har sin egen, uavhengige minnet adressen.

Nå flytter vi til det mer interessant del. Hvis den opprinnelige listen er et sammensatt objekt (f.eks. en liste av lister), så etter en liten kopi, ny liste elementer fortsatt referanse til den opprinnelige elementer.

Så, hvis du endrer foranderlig elementer som viser endringene vil bli reflektert på de opprinnelige elementene., La oss se på eksempelet nedenfor for å få en bedre forståelse:

Som du ser i eksemplet ovenfor, mens vi endrer den interne listen elementer i den nye listen, det er oppdatert på den opprinnelige listen også, fordi a og b fortsatt peker i samme minne-adresse (den opprinnelige listen).

Så, den nye listen b har sin egen hukommelse-adresse, men dens elementer som ikke gjør det., Dette er fordi, på grunn kopi, i stedet for å kopiere listen er elementer til den nye objekt, er det bare å kopiere referanser til deres minne-postadresser.

Derfor, mens vi er med å gjøre endringer til det opprinnelige objektet, det er reflektert i den kopierte objekter og vice versa.

Dette er en karakteristikk av en grunn kopi.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

Hopp til verktøylinje