Sobes.tech
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.