Junior
Aké metódy kopírovania objektov poznáte?
sobes.tech AI
Odpoveď od AI
Povrchové a hlboké kopírovanie.
Povrchová kópia (Shallow Copy) vytvára nový objekt, ale odkazy na vnorené objekty zostávajú rovnaké. Zmeny vo vnorených objektoch pôvodného objektu sa prejavia aj v kópii a naopak.
Hlboká kópia (Deep Copy) vytvára úplne nezávislú kópiu objektu, vrátane kopírovania všetkých vnorených objektov. Zmeny vo vnorených objektoch pôvodného objektu neovplyvnia kópiu.
Príklady implementácie (Python):
# Povrchová kópia
import copy
original_list = [1, 2, [3, 4]]
shallow_copy_list = copy.copy(original_list)
# Zmena vo vnorenom objekte v origináli ovplyvní kópiu
original_list[2][0] = 99
# shallow_copy_list je teraz [1, 2, [99, 4]]
# Hlboká kópia
import copy
original_list = [1, 2, [3, 4]]
deep_copy_list = copy.deepcopy(original_list)
# Zmena vo vnorenom objekte v origináli neovplyvní kópiu
original_list[2][0] = 99
# deep_copy_list zostáva [1, 2, [3, 4]]
Voľba metódy závisí od štruktúry objektu a úlohy. Pre jednoduché objekty bez vnorených odkazov postačuje povrchová kópia. Pre zložitejšie objekty alebo keď je potrebná úplná nezávislosť kópie od originálu, sa používa hlboká kópia.