Sobes.tech
Middle+

Ispričaj mi o modulu copy u Pythonu. Koja je razlika između copy i deepcopy?

sobes.tech АИ

Одговор од АИ

Modul copy u Pythonu pruža funkcije za kreiranje kopija objekata. Glavne funkcije:

  • copy.copy(obj) — površinska kopija.
  • copy.deepcopy(obj) — duboka kopija.

Razlika između copy i deepcopy:

  • Površinska kopija kreira novi objekat, ali ugnježdeni objekti unutar njega se ne kopiraju, već se samo referenciraju na iste objekte kao i u originalu.
  • Duboka kopija rekurzivno kopira sve ugnježdene objekte, stvarajući potpuno nezavisnu kopiju.

Primer:

import copy

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

original[1][0] = 'izmenjeno'

print(shallow)  # [1, ['izmenjeno', 3]] — ugnježdena lista se promenila
print(deep)     # [1, [2, 3]] — duboka kopija se nije promenila