Junior — Middle
Објасните шта је површинско копирање објеката у Python-у и како се разликује од дубоког копирања.
sobes.tech АИ
Одговор од АИ
Površno kopiranje (shallow copy) u Pythonu kreira novi objekat, ali ugnježdeni objekti unutar njega se ne kopiraju, već se kopiraju reference na njih. To znači da, ako unutar objekta postoje modifikabilne ugniježdene strukture (npr. liste, rečnici), one će biti zajedničke između originala i kopije.
Duboko kopiranje (deep copy) kreira novi objekat i rekurzivno kopira sve ugniježdene objekte, stvarajući potpuno nezavisnu kopiju.
Primer:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
shallow[1].append(4)
print(original) # Ispisaće: [1, [2, 3, 4]] — ugniježđena lista se promenila i u originalu
print(deep) # Ispisaće: [1, [2, 3]] — duboko kopiranje se nije promenilo
Stoga, površno kopiranje je prikladno kada se ugniježđeni objekti ne menjaju, a duboko — kada je potrebna potpuna nezavisnost kopije od originala.