Sobes.tech
Middle+

Պատմիր ինձ Python-ի copy մոդուլի մասին։ Ի՞նչ տարբերություն կա copy և deepcopy-ի միջև։

sobes.tech AI

Պատասխան AI-ից

Python-ի copy մոդուլը տրամադրում է ֆունկցիաներ օբյեկտների պատճենները ստեղծելու համար: Հիմնական ֆունկցիաները՝

  • 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]] — խորքային պատճենը չի փոխվել