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