Middle+
Pověz mi o modulu copy v Pythonu. Jaký je rozdíl mezi copy a deepcopy?
sobes.tech AI
Odpověď od AI
Modul copy v Pythonu poskytuje funkce pro vytváření kopií objektů. Hlavní funkce:
copy.copy(obj)— povrchová kopie.copy.deepcopy(obj)— hluboká kopie.
Rozdíl mezi copy a deepcopy:
- Povrchová kopie vytvoří nový objekt, ale vnořené objekty uvnitř nejsou kopírovány, pouze odkazují na stejné objekty jako v originálu.
- Hluboká kopie rekurzivně kopíruje všechny vnořené objekty, čímž vytváří plně nezávislou kopii.
Příklad:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
original[1][0] = 'změněno'
print(shallow) # [1, ['změněno', 3]] — vnořený seznam se změnil
print(deep) # [1, [2, 3]] — hluboká kopie se nezměnila