przypisanie a płytka Kopia a głęboka Kopia w Pythonie

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żaIbnadal 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.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Przejdź do paska narzędzi