Sobes.tech
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]] — ორიგინალი არ შეიცვალა