Junior — Middle
Python'da nesnelerin yüzeysel kopyasının ne olduğunu ve derin kopyadan nasıl farklı olduğunu açıklayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
Python'da yüzeysel kopyalama (shallow copy), yeni bir nesne oluşturur, ancak içindeki gömülü nesneler kopyalanmaz, sadece onlara referanslar kopyalanır. Yani, nesne içinde değiştirilebilir gömülü yapılar (örneğin, listeler, sözlükler) varsa, bunlar orijinal ve kopya arasında paylaşılır.
Derin kopyalama (deep copy) ise yeni bir nesne oluşturur ve tüm gömülü nesneleri rekürsif olarak kopyalar, böylece tamamen bağımsız bir kopya ortaya çıkar.
Örnek:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
shallow[1].append(4)
print(original) # Çıktı: [1, [2, 3, 4]] — gömülü liste de orijinalde değişti
print(deep) # Çıktı: [1, [2, 3]] — derin kopya değişmedi
Bu nedenle, yüzeysel kopyalama, gömülü nesneler değişmiyorsa uygundur ve derin kopya, kopyanın orijinalden tamamen bağımsız olması gerekiyorsa kullanılır.