Sobes.tech
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.