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