Junior — Middle
Kāpēc ir svarīgi izmantot dziļu kopiju objektos programmēšanā?
sobes.tech AI
Atbilde no AI
Dziļā objektu kopēšana ir svarīga, ja nepieciešams izveidot pilnīgi neatkarīgu sarežģīta objekta kopiju, ieskaitot visus iekšējos objektus un datu struktūras. Virsmas kopēšana kopē tikai augšējo līmeni, bet iekšējie objekti paliek kopīgi starp kopijām, kas var novest pie negaidītām izmaiņām un kļūdām.
Piemēram, ja jums ir sarakstu saraksts un veicat virsmas kopēšanu, izmaiņas iekšējā sarakstā kopijā ietekmēs oriģinālu. Dziļā kopēšana šo problēmu atrisina, radot neatkarīgus iekšējos objektus.
Pythonā dziļai kopēšanai tiek izmantots modulis copy un funkcija deepcopy:
import copy
original = [[1, 2], [3, 4]]
shallow_copy = copy.copy(original)
deep_copy = copy.deepcopy(original)
shallow_copy[0][0] = 100
print(original) # [[100, 2], [3, 4]] - oriģināls mainījās
deep_copy[1][1] = 200
print(original) # [[100, 2], [3, 4]] - oriģināls nemainījās