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