Sobes.tech
Middle+

Python'da copy modul haqida gapir. copy va deepcopy o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Python'da copy moduli obyektlarning nusxalarini yaratish uchun funksiyalar taqdim etadi. Asosiy funksiyalar:

  • copy.copy(obj) — yuzaki nusxa.
  • copy.deepcopy(obj) — chuqur nusxa.

copy va deepcopy o'rtasidagi farq:

  • Yuzaki nusxa yangi obyekt yaratadi, lekin ichki obyektlar nusxalanmaydi, ular faqat asl obyektlardagi kabi referenslar bo'lib qoladi.
  • Chuqur nusxa rekursiv ravishda barcha ichki obyektlarni nusxalaydi va to'liq mustaqil nusxa yaratadi.

Misol:

import copy

original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)

original[1][0] = 'o`zgartirildi'

print(shallow)  # [1, ['o`zgartirildi', 3]] — ichki ro`yxat o`zgardi
print(deep)     # [1, [2, 3]] — chuqur nusxa o`zgarmadi