İçin belgeleri okurken dict.copy()
, sözlüğün sığ bir kopyasını yaptığını söylüyor. Aynı şey takip ettiğim kitap için de geçerli (Beazley'in Python Referansı):
M.copy () yöntemi, bir eşleme nesnesinde bulunan öğelerin sığ bir kopyasını oluşturur ve bunları yeni bir eşleme nesnesine yerleştirir.
Bunu düşün:
>>> original = dict(a=1, b=2)
>>> new = original.copy()
>>> new.update({'c': 3})
>>> original
{'a': 1, 'b': 2}
>>> new
{'a': 1, 'c': 3, 'b': 2}
Bu yüzden original
sığ bir kopya yaptığımdan beri bunun değerini güncelleyeceğini varsaydım (ve 'c': 3'ü ekleyeceğim). Bir liste için yaparsanız:
>>> original = [1, 2, 3]
>>> new = original
>>> new.append(4)
>>> new, original
([1, 2, 3, 4], [1, 2, 3, 4])
Bu beklendiği gibi çalışır.
Her ikisi de sığ kopyalar olduğundan, neden dict.copy()
beklediğim gibi çalışmıyor? Ya da sığ ve derin kopyalama anlayışım kusurlu mu?