Sobes.tech
Junior — Middle

Kaip keičiasi modifikuojamų duomenų tipų objektai, kai jie perduodami kaip argumentai funkcijai?

sobes.tech AI

Atsakymas iš AI

Python'e, keičiamų tipų objektai (pvz., sąrašai, žodynai, rinkiniai) perduodami funkcijai nuoroda į objektą. Tai reiškia, kad jei funkcijos viduje pakeisite objekto turinį (pvz., pridėsite elementą į sąrašą), šie pakeitimai bus matomi ir už funkcijos ribų.

Pavyzdys:

def add_element(lst):
    lst.append(10)

my_list = [1, 2, 3]
add_element(my_list)
print(my_list)  # Išves: [1, 2, 3, 10]

Tačiau, jei funkcijos viduje priskirsite parametrui naują objektą, tai nepaveiks išorinio objekto:

def replace_list(lst):
    lst = [4, 5, 6]  # Sukuriamas naujas objektas, lokalus funkcijai

my_list = [1, 2, 3]
replace_list(my_list)
print(my_list)  # Išves: [1, 2, 3]

Todėl, perduodant keičiamus objektus į funkciją, jų turinį galima keisti, ir šie pakeitimai išliks už funkcijos ribų.