Middle
Ar Python parametrai perduodami pagal reikšmę ar pagal nuorodą?
sobes.tech AI
Atsakymas iš AI
Python'e parametrai perduodami per nuorodą į objektą (pass-by-object-reference). Tai reiškia, kad funkcija gauna nuorodą į objektą, o ne kopiją vertės. Tačiau elgsena priklauso nuo objekto keičiamumo:
- Keičiamų objektų (pvz., sąrašų, žodynų) viduje atlikti pakeitimai atsispindi originaliame objekte.
- Ne keičiamų objektų (pvz., skaičių, eilučių, tuple) bandymas keisti objektą funkcijos viduje sukuria naują objektą, o originalas lieka nepakitęs.
Pavyzdys:
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
Taigi, galima sakyti, kad parametrai perduodami per nuorodą, tačiau elgsena panaši į perduodamą per vertę ne keičiamų objektų atveju.