Sobes.tech
Junior

Kādus objektu kopēšanas metodes jūs zināt?

sobes.tech AI

Atbilde no AI

Pārklājuma un dziļa kopēšana.

Pārklājuma kopēšana (Shallow Copy) izveido jaunu objektu, bet atsauces uz iekšējiem objektiem paliek tās pašas. Izmaiņas iekšējos objektos oriģinālā ietekmēs arī kopiju, un otrādi.

Dziļa kopēšana (Deep Copy) izveido pilnīgi neatkarīgu objekta kopiju, ieskaitot visu iekšējo objektu kopijas. Izmaiņas iekšējos objektos oriģinālā neietekmēs kopiju.

Python piemēri:

# Pārklājuma kopēšana
import copy

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

# Izmaiņas iekšējā objektā ietekmēs kopiju
original_list[2][0] = 99
# shallow_copy_list tagad ir [1, 2, [99, 4]]
# Dziļa kopēšana
import copy

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

# Izmaiņas iekšējā objektā neietekmēs kopiju
original_list[2][0] = 99
# deep_copy_list paliek [1, 2, [3, 4]]

Metodes izvēle ir atkarīga no objekta struktūras un uzdevuma. Vienkāršiem objektiem bez iekšējām saitēm pietiek ar pārklājuma kopēšanu. Sarežģītākiem objektiem vai kad nepieciešama pilnīga neatkarība no oriģināla, tiek izmantota dziļa kopēšana.