Links
Comment on page

👯‍♀️ Kopyalama

Python ile kopyalama, copy, deep copy ve shallow copy işlemleri

👀 Hızlı Bakış

import copy
li1 = [1, 2, [3,5], 4]
​
# Shallow copy
li2 = copy.copy(li1)
​
# Deep copy
li3 = copy.deepcopy(li1)
​
# Slice ile deep copy
li4 = li1[:]
📢 Objenin kopyalama davranışlarını değiştirmek için __copy__, __deepcopy__ metotları override edilir

🆚 Shallow ve Deep Copy

🌫️ Shallow Copy
🕳 Deep Copy
Referans kopyalar
Değer kopyalar
Obje yeniden oluşturulur
Obje yeniden oluşturulur
Objenin her bir referansı kopyalanır ve yeniye aktarılır
Objenin her bir değeri tek tek kopyalanır ve yeniye aktarılır
Kopyalanan objenin referansı alındığından orijinal ile bağlantılıdır
Her bilgi tek tek kopyalandığından orijinal ile bağlantısı yoktur
Herhangi bir değişiklik diğerini de etkiler
Herhangi bir değişiklik diğerini etkilemez

📜 DeepCopy Hakkında

  • Deepcopy işlemi cls ile yeniden sınıf objesi oluşturmak ile benzerdir
  • Alttaki örnekteki class2 ile class3 benzer işlevi görmektedir
from copy import deepcopy
​
class AnyClass:
x: int
y: int
def __init__(self, x: int, y: int):
self.x = x
self.y = y
​
class1 = AnyClass(1, 2)
class2 = deepcopy(aclass)
class3 = AnyClass(class1.x, class2.y)
# class2 ile class3 benzer işlevi görmektedir

🔗 Faydalı Bağlantılar

2023 © Yunus Emre AK