Junior — Middle
Тавзеҳ диҳед, ки чӣ гуна нусхаи рӯи объектҳо дар Python аст ва чӣ гуна аз нусхаи амиқ фарқ мекунад.
sobes.tech AI
Ҷавоб аз AI
Копираванието на повърхностен слой (shallow copy) в Python създава нов обект, но вложените обекти вътре в него не се копират, а само се копират референциите към тях. Тоест, ако в обекта има променливи структури (например списъци, речници), те ще бъдат споделени между оригинала и копието.
Дълбокото копиране (deep copy) създава нов обект и рекурсивно копира всички вложени обекти, създавайки напълно независима копие.
Пример:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
shallow[1].append(4)
print(original) # Ще изведе: [1, [2, 3, 4]] — вложеният списък също се промени в оригинала
print(deep) # Ще изведе: [1, [2, 3]] — дълбокото копиране не се промени
Затова, повърхностното копиране е подходящо, когато вложените обекти не се променят, а дълбокото — когато е необходима пълна независимост на копието от оригинала.