Sobes.tech
Junior — Middle

Leg uit wat een oppervlakkige kopie van objecten in Python is en hoe deze verschilt van een diepe kopie.

sobes.tech AI

Antwoord van AI

De oppervlakkige kopie (shallow copy) in Python maakt een nieuw object aan, maar de geneste objecten daarin worden niet gekopieerd, alleen de verwijzingen ernaar. Dat wil zeggen, als het object mutabele geneste structuren bevat (bijvoorbeeld lijsten, woordenboeken), worden deze gedeeld tussen het origineel en de kopie.

De diepe kopie (deep copy) maakt een nieuw object en kopieert recursief alle geneste objecten, waardoor een volledig onafhankelijke kopie ontstaat.

Voorbeeld:

import copy

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

shallow[1].append(4)
print(original)  # Toont: [1, [2, 3, 4]] — de geneste lijst is ook gewijzigd in het origineel
print(deep)      # Toont: [1, [2, 3]] — de diepe kopie is niet gewijzigd

Dus, oppervlakkige kopie is geschikt wanneer de geneste objecten niet veranderen, en diepe kopie wanneer volledige onafhankelijkheid van de kopie ten opzichte van het origineel nodig is.