Sobes.tech
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