Sobes.tech
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]] — ღრმა ასლი არ შეიცვალა