Sobes.tech
Middle+

Pastāsti par copy moduli Python. Kāda ir atšķirība starp copy un deepcopy?

sobes.tech AI

Atbilde no AI

Python copy modulis nodrošina funkcijas objektu kopēšanai. Galvenās funkcijas:

  • copy.copy(obj) — virsmas kopija.
  • copy.deepcopy(obj) — dziļa kopija.

Atšķirība starp copy un deepcopy:

  • Virsmas kopija izveido jaunu objektu, bet iekšējie objekti tajā netiek kopēti, tie tikai norāda uz tos pašus objektus kā oriģinālā.
  • Dziļa kopija rekursīvi kopē visus iekšējos objektus, radot pilnīgi neatkarīgu kopiju.

Piemērs:

import copy

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

original[1][0] = 'izmainīts'

print(shallow)  # [1, ['izmainīts', 3]] — iekšējais saraksts mainījās
print(deep)     # [1, [2, 3]] — dziļa kopija nemainījās