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]]
Изборът на метод зависи от структурата на обекта и задачата. За прости обекти без вложени препратки, достатъчно е повърхностното копиране. За сложни обекти или когато е необходима пълна независимост на копието от оригинала, се използва дълбоко копиране.