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