Junior
Jaké metody kopírování objektů znáte?
sobes.tech AI
Odpověď od AI
Povrchová a hluboká kopie.
Povrchová kopie (Shallow Copy) vytvoří nový objekt, ale odkazy na vnořené objekty zůstanou stejné. Změny ve vnořených objektech původního objektu se projeví i v kopii a naopak.
Hluboká kopie (Deep Copy) vytvoří úplně nezávislou kopii objektu, včetně kopie všech vnořených objektů. Změny ve vnořených objektech původního objektu neovlivní kopii.
Příklady implementace (Python):
# Povrchová kopie
import copy
original_list = [1, 2, [3, 4]]
shallow_copy_list = copy.copy(original_list)
# Změna vnořeného objektu v originálu ovlivní kopii
original_list[2][0] = 99
# shallow_copy_list je nyní [1, 2, [99, 4]]
# Hluboká kopie
import copy
original_list = [1, 2, [3, 4]]
deep_copy_list = copy.deepcopy(original_list)
# Změna vnořeného objektu v originálu neovlivní kopii
original_list[2][0] = 99
# deep_copy_list zůstává [1, 2, [3, 4]]
Volba metody závisí na struktuře objektu a úkolu. Pro jednoduché objekty bez vnořených odkazů postačí povrchová kopie. Pro složitější objekty nebo když je potřeba úplná nezávislost kopie na originálu, se používá hluboká kopie.