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]]

Изборът на метод зависи от структурата на обекта и задачата. За прости обекти без вложени препратки, достатъчно е повърхностното копиране. За сложни обекти или когато е необходима пълна независимост на копието от оригинала, се използва дълбоко копиране.