Sobes.tech
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]] — дълбокото копиране не се промени

Затова, повърхностното копиране е подходящо, когато вложените обекти не се променят, а дълбокото — когато е необходима пълна независимост на копието от оригинала.