Sobes.tech
Middle+

Opowiedz o module copy w Pythonie. Jaka jest różnica między copy a deepcopy?

sobes.tech AI

Odpowiedź od AI

Moduł copy w Pythonie zapewnia funkcje do tworzenia kopii obiektów. Główne funkcje:

  • copy.copy(obj) — kopia płytka.
  • copy.deepcopy(obj) — kopia głęboka.

Różnica między copy a deepcopy:

  • Kopia płytka tworzy nowy obiekt, ale obiekty zagnieżdżone w nim nie są kopiowane, tylko odwołują się do tych samych obiektów co w oryginale.
  • Kopia głęboka rekurencyjnie kopiuje wszystkie obiekty zagnieżdżone, tworząc całkowicie niezależną kopię.

Przykład:

import copy

original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)

original[1][0] = 'zmienione'

print(shallow)  # [1, ['zmienione', 3]] — zagnieżdżona lista się zmieniła
print(deep)     # [1, [2, 3]] — kopia głęboka się nie zmieniła