Junior — Middle
Python-da obyektlərin səth nüsxəsinin nə olduğunu və onun dərin nüsxədən necə fərqləndiyini izah edin.
sobes.tech Süni İntellekt
AI-dan cavab
Python-da səthli nüsxə (shallow copy) yeni obyekt yaradır, amma onun içindəki iç obyektlər nüsxələnmir, sadəcə onlara istinadlar köçürülür. Yəni, obyekt daxilində dəyişdirilə bilən iç strukturlar (məsələn, siyahılar, lüğətlər) varsa, onlar orijinal və nüsxə arasında paylaşılır.
Dərin nüsxə (deep copy) isə yeni obyekt yaradır və bütün iç obyektləri rekursiv şəkildə nüsxələyir, tam müstəqil nüsxə yaradır.
Misal:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
shallow[1].append(4)
print(original) # Nəticə: [1, [2, 3, 4]] — iç siyahı da orijinalda dəyişdi
print(deep) # Nəticə: [1, [2, 3]] — dərin nüsxə dəyişməyib
Buna görə də, səthli nüsxə alma, iç obyektlər dəyişməzsə uyğundur və dərin nüsxə — nüsxənin orijinaldan tam müstəqil olması lazım olduqda istifadə olunur.