Płytka Kopia
płytka Kopia konstruuje nowy złożony obiekt, a następnie (w miarę możliwości) wstawia do niego odniesienia do obiektów znalezionych w oryginale.
mamy trzy różne sposoby tworzenia płytkiej kopii:
tutaj wszystkie powyższe listy zawierają te same wartości, co lista oryginalna:
>>> print(nums == m1 == m2 == m3)
True
jednak adres pamięci każdego z nich jest inny.,
oznacza to, że tym razem każdy obiekt listy ma swój własny, niezależny adres pamięci.
teraz przechodzimy do bardziej interesującej części. Jeśli oryginalna lista jest obiektem złożonym( np. lista list), to po płytkiej kopii nowe elementy listy nadal odwołują się do oryginalnych elementów.
Tak więc, jeśli zmodyfikujesz zmienne elementy, takie jak listy, zmiany zostaną odzwierciedlone na oryginalnych elementach., Spójrzmy na poniższy przykład, aby uzyskać lepsze zrozumienie:
jak widać w powyższym przykładzie, podczas gdy modyfikujemy wewnętrzne elementy listy w nowej liście, jest ona aktualizowana również w oryginalnej liście, ponieważa
Ib
nadal wskazują ten sam adres pamięci (oryginalna lista).
tak więc nowa lista b
ma swój własny adres pamięci, ale jej elementy nie., Dzieje się tak dlatego, że w płytkiej kopii, zamiast kopiować elementy listy do nowego obiektu, po prostu kopiuje odwołania do ich adresów pamięci.
dlatego podczas wprowadzania zmian do oryginalnego obiektu, jest on odzwierciedlany w kopiowanych obiektach i odwrotnie.
jest to cecha płytkiej kopii.