Middle
Python-ում պարամետրերը փոխանցվում են արժեքով կամ հղումով?
sobes.tech AI
Պատասխան AI-ից
Python-ում պարամետրերը փոխանցվում են օբյեկտի հղումով (pass-by-object-reference): Սա նշանակում է, որ ֆունկցիան ստանում է օբյեկտի հղում, ոչ թե արժեքի պատճենը: Սակայն, վարքագիծը կախված է օբյեկտի փոփոխականությունից:
- Փոփոխական օբյեկտների համար (օրինակ, ցանկեր, բառարաններ), փոփոխությունները ֆունկցիայի ներսում արտացոլվում են սկզբնական օբյեկտի վրա:
- Անփոփոխ օբյեկտների համար (օրինակ, թվեր, տողեր, տիպեր), ցանկացած փորձ փոփոխել օբյեկտը ֆունկցիայի ներսում ստեղծում է նոր օբյեկտ, իսկ սկզբնականը մնում է անփոփոխ:
Օրինակ՝
def modify_list(lst):
lst.append(4)
my_list = [1, 2, 3]
modify_list(my_list)
print(my_list) # [1, 2, 3, 4]
def modify_int(x):
x += 1
num = 5
modify_int(num)
print(num) # 5
Այսպիսով, կարելի է ասել, որ պարամետրերը փոխանցվում են հղումով, բայց վարքագիծը նման է արժեքով փոխանցման՝ անփոփոխ օբյեկտների համար։