Middle+
Mesélj a copy modulról Pythonban. Mi a különbség a copy és a deepcopy között?
sobes.tech MI
Válasz az MI-től
A Python copy modulja funkciókat kínál objektumok másolatainak létrehozására. Fő funkciók:
copy.copy(obj)— felületi másolat.copy.deepcopy(obj)— mély másolat.
A copy és a deepcopy közötti különbség:
- A felületi másolat új objektumot hoz létre, de a beágyazott objektumok nem másolódnak, csak ugyanarra az objektumra hivatkoznak, mint az eredeti.
- A mély másolat rekurzívan másolja az összes beágyazott objektumot, teljesen független másolatot hozva létre.
Példa:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
original[1][0] = 'változott'
print(shallow) # [1, ['változott', 3]] — a beágyazott lista megváltozott
print(deep) # [1, [2, 3]] — a mély másolat nem változott