Middle
Kas Pythonis parameetreid edasi antakse väärtuse või viitega?
sobes.tech AI
Vastus AI-lt
Pythonis edastatakse parameetrid objekti viitega (pass-by-object-reference). See tähendab, et funktsioon saab viite objekti, mitte väärtuse koopiat. Kuid käitumine sõltub objekti muutuvusest:
- Muutuvate objektide (näiteks nimekirjad, sõnastikud) sees tehtud muudatused kajastuvad algses objekti.
- Muutumatute objektide (näiteks numbrid, stringid, tükid) puhul loob iga katse objekti muuta funktsiooni sees uue objekti, jättes algse muutumatuna.
Näide:
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
Seega võib öelda, et parameetrid edastatakse viitega, kuid käitumine sarnaneb väärtuse edastamisega muutumatute objektide puhul.