Middle
Předávají se parametry v Pythonu hodnotou nebo odkazem?
sobes.tech AI
Odpověď od AI
V Pythonu jsou parametry předávány odkazem na objekt (pass-by-object-reference). To znamená, že funkce obdrží odkaz na objekt, nikoliv kopii hodnoty. Chování však závisí na tom, zda je objekt změnitelný:
- U změnitelných objektů (například seznamy, slovníky) se změny uvnitř funkce odrážejí na původním objektu.
- U neměnitelných objektů (například čísla, řetězce, n-tice) jakákoli snaha změnit objekt uvnitř funkce vytvoří nový objekt, původní zůstává nezměněn.
Příklad:
def modify_list(lst):
lst.append(4)
my_list = [1, 2, 3]
modify_list(my_list)
print(my_list) # [1, 2, 3, 4]
def modify_int(x):
x += 1
num = 5
modify_int(num)
print(num) # 5
Lze říci, že parametry jsou předávány odkazem, ale chování je podobné předání hodnotou u neměnitelných objektů.