Sobes.tech
Junior

Obyektlərin surətini çıxarmağın hansı metodlarını bilirsiniz?

sobes.tech Süni İntellekt

AI-dan cavab

Yüzeysel və dərin nüsxə.

Yüzeysel nüsxə (Shallow Copy) yeni bir obyekt yaradır, lakin iç-içə obyektlərə olan istinadlar eyni qalır. Orijinal obyektin iç-içə obyektlərində edilən dəyişikliklər nüsxəyə də təsir edir və əksinə.

Dərin nüsxə (Deep Copy) obyektin tam müstəqil nüsxəsini yaradır, o cümlədən bütün iç-içə obyektlərin nüsxəsini də. Orijinalın iç-içə obyektlərində edilən dəyişikliklər nüsxəyə təsir etmir.

Python nümunələri:

# Yüzeysel nüsxə
import copy

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

# Orijinalda iç-içə obyekt üzərində dəyişiklik nüsxəyə də təsir edir
original_list[2][0] = 99
# shallow_copy_list indi [1, 2, [99, 4]]
# Dərin nüsxə
import copy

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

# Orijinalda iç-içə obyekt üzərində dəyişiklik nüsxəyə təsir etmir
original_list[2][0] = 99
# deep_copy_list hələ də [1, 2, [3, 4]]

Yöntəm seçimi obyektin quruluşundan və tapşırıqdan asılıdır. Sadə obyektlər üçün yüzeysel nüsxə kifayət edir. Çətin strukturlu obyektlər və ya nüsxənin tam müstəqil olması lazım olduqda, dərin nüsxə istifadə olunur.