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.