Sobes.tech
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

Այսպիսով, կարելի է ասել, որ պարամետրերը փոխանցվում են հղումով, բայց վարքագիծը նման է արժեքով փոխանցման՝ անփոփոխ օբյեկտների համար։