Sobes.tech
Middle+

Povedz mi o module copy v Pythone. Čo je rozdiel medzi copy a deepcopy?

sobes.tech AI

Odpoveď od AI

Modul copy v Pythone ponúka funkcie na vytváranie kópií objektov. Hlavné funkcie:

  • copy.copy(obj) — povrchová kópia.
  • copy.deepcopy(obj) — hlboká kópia.

Rozdiel medzi copy a deepcopy:

  • Povrchová kópia vytvára nový objekt, ale vnorené objekty vo vnútri sa nekopírujú, iba sa na ne odkazuje rovnakými objektmi ako v origináli.
  • Hlboká kópia rekurzívne kopíruje všetky vnorené objekty, čím vytvára úplne nezávislú kópiu.

Príklad:

import copy

original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)

original[1][0] = 'zmenené'

print(shallow)  # [1, ['zmenené', 3]] — vnorený zoznam sa zmenil
print(deep)     # [1, [2, 3]] — hlboká kópia sa nezmenila