Junior — Middle
Kuidas muutuvad muudetavate andmetüüpide objektid, kui neid antakse funktsioonile argumentidena?
sobes.tech AI
Vastus AI-lt
Pythonis muudetavate tüüpide objektid (näiteks nimekirjad, sõnastikud, kogumid) edastatakse funktsioonile viitega objekti juurde. See tähendab, et kui funktsiooni sees muudad objekti sisu (näiteks lisad nimekirja elemendi), siis need muudatused on nähtavad ka väljaspool funktsiooni.
Näide:
def add_element(lst):
lst.append(10)
my_list = [1, 2, 3]
add_element(my_list)
print(my_list) # Näitab: [1, 2, 3, 10]
Kuid, kui funktsiooni sees määrad parameetrile uue objekti, see ei mõjuta välist objekti:
def replace_list(lst):
lst = [4, 5, 6] # Loob uue objekti, lokaalselt funktsioonis
my_list = [1, 2, 3]
replace_list(my_list)
print(my_list) # Näitab: [1, 2, 3]
Seega, muudetavate objektide edastamisel funktsioonile, saab nende sisu muuta, ning need muudatused jäävad funktsiooni väljapoole kehtima.