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ų.