Sobes.tech
Junior

Koje metode kopiranja objekata poznajete?

sobes.tech АИ

Одговор од АИ

Površno i duboko kopiranje.

Površno kopiranje (Shallow Copy) kreira novi objekat, ali se reference na ugnježdene objekte ostaju iste. Promene u ugnježdenim objektima originalnog objekta odraziće se i na kopiji, i obrnuto.

Duboko kopiranje (Deep Copy) kreira potpuno nezavisnu kopiju objekta, uključujući kopiranje svih ugnježdenih objekata. Promene u ugnježdenim objektima originalnog objekta ne utiču na kopiju.

Primeri implementacije (Python):

# Površno kopiranje
import copy

original_list = [1, 2, [3, 4]]
shallow_copy_list = copy.copy(original_list)

# Promena u ugnježdenom objektu u originalu utiče na kopiju
original_list[2][0] = 99
# shallow_copy_list sada je [1, 2, [99, 4]]
# Duboko kopiranje
import copy

original_list = [1, 2, [3, 4]]
deep_copy_list = copy.deepcopy(original_list)

# Promena u ugnježdenom objektu u originalu ne utiče na kopiju
original_list[2][0] = 99
# deep_copy_list ostaje [1, 2, [3, 4]]

Izbor metode zavisi od strukture objekta i zadatka. Za jednostavne objekte bez ugnježdenih referenci, dovoljan je površni kopiranje. Za složenije objekte ili kada je potrebna potpuna nezavisnost kopije od originala, koristi se duboko kopiranje.