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