Sobes.tech
Junior

Объекттерди көчүрүү үчүн кандай ыкмаларды билесиз?

sobes.tech AI

AIден жооп

Бет жана терең көчүрмө.

Бет көчүрмө (Shallow Copy) жаңы объект түзөт, бирок ички объекттерге шилтемелер ошол бойдон калат. Оригиналдын ички объекттеринде жасалган өзгөртүүлөр көчүрмөгө да таасир этет жана тескерисинче.

Терең көчүрмө (Deep Copy) объекттин толук көз карандысыз көчүрмөсүн түзөт, анын ичинде бардык ички объекттердин көчүрмөсү да бар. Оригиналдын ички объекттеринде жасалган өзгөртүүлөр көчүрмөгө таасир этпейт.

Python мисалдары:

# Бет көчүрмө
import copy

original_list = [1, 2, [3, 4]]
shallow_copy_list = copy.copy(original_list)

# Оригиналдын ички объектисинде жасалган өзгөртүү көчүрмөгө да таасир этет
original_list[2][0] = 99
# shallow_copy_list азыр [1, 2, [99, 4]]
# Терең көчүрмө
import copy

original_list = [1, 2, [3, 4]]
deep_copy_list = copy.deepcopy(original_list)

# Оригиналдын ички объектисинде жасалган өзгөртүү көчүрмөгө таасир этпейт
original_list[2][0] = 99
# deep_copy_list дагы [1, 2, [3, 4]]

Кийинки метод тандоо объекттин түзүлүшүнө жана тапшырмага жараша болот. Жөнөкөй объекттер үчүн, ички шилтемелерсиз, бет көчүрмө жетиштүү. Кыйын структуралуу объекттер үчүн же көчүрмө толук көз карандысыз болушу керек болсо, терең көчүрмө колдонулат.