Junior — Middle
შეგიძლიათ ახსნათ ობიექტის ღრმა და ზედაპირული კოპიის განსხვავება?
sobes.tech AI
პასუხი AI-სგან
შალაშე ასლი (shallow copy) ქმნის ახალ ობიექტს, მაგრამ მისი შიგნით არსებული შიდა ობიექტები არ იწერება, ისინი უბრალოდ მითითებულია იმავე ობიექტებზე, როგორც ორიგინალში. ეს ნიშნავს, რომ შიდა ობიექტებში ცვლილებები აისახება ასლზეც.
ღრმა ასლი (deep copy) ქმნის სრულად დამოუკიდებელ ასლს ობიექტის და მისი ყველა შიდა ობიექტის, რეკურსიურად. ცვლილებები ასლში არ ზემოქმედებს ორიგინალზე.
Python-ის მაგალითი:
import copy
მთავარი = [1, [2, 3]]
შალაშე = copy.copy(მთავარი)
ღრმა = copy.deepcopy(მთავარი)
შალაშე[1][0] = 'ცვლილება'
print(მთავარი) # [1, ['ცვლილება', 3]] — ორიგინალიც შეიცვალა
ღრმა[1][0] = 'ღრმა_ცვლილება'
print(მთავარი) # [1, ['ცვლილება', 3]] — ორიგინალი არ შეიცვალა