Python'da, bir nesnenin kopyasını oluşturmanın iki yolu vardır: shallow (yüzeyel) kopyalama ve deep (derin) kopyalama.
Shallow Copying: Shallow kopyalama, bir nesnenin bir kopyasını oluşturur, ancak bu kopya, orijinal nesne ile aynı iç içe geçmiş nesnelere (nested objects) referans verir. Yani, bir liste veya sözlük gibi bir nesnenin shallow kopyasını oluşturduğunuzda, kopya ve orijinal nesne, aynı iç içe geçmiş nesnelere referans verir. Bu, bir iç içe geçmiş nesnenin kopyada değiştirilmesi durumunda, bu değişikliğin orijinal nesneyi de etkileyeceği anlamına gelir.
Python'da, copy modülünün copy fonksiyonu veya bir liste için list fonksiyonu veya bir sözlük için dict fonksiyonu ile shallow kopya oluşturabilirsiniz.
Deep Copying: Deep kopyalama, bir nesnenin bir kopyasını oluşturur ve ayrıca iç içe geçmiş nesnelerin de yeni kopyalarını oluşturur. Yani, bir liste veya sözlük gibi bir nesnenin deep kopyasını oluşturduğunuzda, kopya ve orijinal nesne, farklı iç içe geçmiş nesnelere referans verir. Bu, bir iç içe geçmiş nesnenin kopyada değiştirilmesi durumunda, bu değişikliğin orijinal nesneyi etkilemeyeceği anlamına gelir.
Python'da, copy modülünün deepcopy fonksiyonu ile deep kopya oluşturabilirsiniz.
Örnek:
import copy # original list original = [1, 2, [3, 4]] # creating a shallow copy shallow = list(original) # creating a deep copy deep = copy.deepcopy(original) # changing the original list original[2][0] = 'a' print(original) # Outputs: [1, 2, ['a', 4]] print(shallow) # Outputs: [1, 2, ['a', 4]] print(deep) # Outputs: [1, 2, [3, 4]]
Bu örnekte, orijinal listeyi değiştirdiğimizde, shallow kopya da değişir, çünkü aynı iç içe geçmiş listeye referans verir. Ancak, deep kopya değişmez, çünkü iç içe geçmiş listenin kendi kopyasına sahiptir.
0 Comments
Recommended Comments
There are no comments to display.