Sobes.tech
Middle+

Даро ба ман дар бораи модул copy дар Python гӯ. Фарқ байни copy ва deepcopy чист?

sobes.tech AI

Ҷавоб аз AI

Модул copy дар Python пешниҳод мекунад функсияҳо барои эҷоди нусхаҳои объектҳо. Функсияҳои асосӣ:

  • copy.copy(obj) — нусхаи сатҳӣ.
  • copy.deepcopy(obj) — нусхаи амиқ.

Фарқият байни copy ва deepcopy:

  • Нусхаи сатҳӣ як объект нав месозад, аммо объектҳои дарунсохт дар дохили он нусхабардорӣ намешаванд, балки ба ҳамон объектҳо ишора мекунанд, ки дар оригинал ҳастанд.
  • Нусхаи амиқ ҳама объектҳои дарунсохтро рекурсиван нусхабардорӣ мекунад ва нусхаи комилан мустақил месозад.

Масалан:

import copy

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

original[1][0] = 'тағйир ёфт'

print(shallow)  # [1, ['тағйир ёфт', 3]] — рӯйхати дарунсохт тағйир ёфт
print(deep)     # [1, [2, 3]] — нусхаи амиқ тағйир наёфтааст