Sobes.tech
Junior — Middle

Ako sa menia objekty meniteľných typov údajov pri ich prenose do funkcie ako argumenty?

sobes.tech AI

Odpoveď od AI

V Pythone sú objekty meniteľného typu (napríklad zoznamy, slovníky, množiny) odovzdávané do funkcie odkazom na objekt. To znamená, že ak vo vnútri funkcie zmeníte obsah objektu (napríklad pridáte prvok do zoznamu), tieto zmeny budú viditeľné aj mimo funkcie.

Príklad:

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

my_list = [1, 2, 3]
add_element(my_list)
print(my_list)  # Vypíše: [1, 2, 3, 10]

Avšak, ak vo vnútri funkcie priradíte parametru nový objekt, nebude to mať vplyv na vonkajší objekt:

def replace_list(lst):
    lst = [4, 5, 6]  # Vytvorí sa nový objekt, lokálny pre funkciu

my_list = [1, 2, 3]
replace_list(my_list)
print(my_list)  # Vypíše: [1, 2, 3]

Teda, pri odovzdávaní meniteľných objektov do funkcie, môžete ich obsah meniť, a tieto zmeny zostanú mimo funkcie.