Junior
Ինչպես են փոխանցվում արգումենտները ֆունկցիային՝ հղումով կամ արժեքով?
sobes.tech AI
Պատասխան AI-ից
Python-ում argumento-ները ոչ թե ուղղակի հղումով կամ արժեքով են փոխանցվում, այլ մեխանիզմով, որը հաճախ կոչվում է "pass by object reference" կամ "pass by sharing":
Սա նշանակում է հետևյալը՝
- Երբ փոխանցում եք արգումենտ ֆունկցիային, փոխանցվում է հղում օբյեկտին:
- Եթե օբյեկտը փոփոխական է (օրինակ, ցանկ, բառարան), ապա փոփոխությունները ֆունկցիայի ներսում կտեսնվեն նաև նրա դուրս:
- Եթե օբյեկտը անփոփոխ է (օրինակ, թիվ, տող, տիպլ), ապա նրա փոփոխության փորձը ներսում կստեղծի նոր օբյեկտ, իսկ սկզբնական օբյեկտը դուրս ** կմնա անփոփոխ**:
Փոփոխվող օբյեկտներ:
# Փոփոխվող օբյեկտ (ցանկ)
def modify_list(items):
items.append(4)
my_list = [1, 2, 3]
modify_list(my_list)
# my_list այժմ [1, 2, 3, 4]
Անփոփոխ օբյեկտներ:
# Անփոփոխ օբյեկտ (թիվ)
def modify_number(num):
num = num + 1
my_number = 5
modify_number(my_number)
# my_number մնում է 5