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.