Middle
Da li se parametri u Python-u prosleđuju po vrednosti ili po referenci?
sobes.tech АИ
Одговор од АИ
U Python-u, parametri se prosleđuju putem referencu na objekat (pass-by-object-reference). To znači da funkcija prima referencu na objekat, a ne kopiju vrednosti. Međutim, ponašanje zavisi od promenljivosti objekta:
- Za promenljive objekte (npr. liste, rečnici), promene unutar funkcije odražavaju se na originalni objekat.
- Za nepromenljive objekte (npr. brojevi, stringovi, tuple-ovi), svaka pokušaj promene objekta unutar funkcije kreira novi objekat, a original ostaje nepromenjen.
Primer:
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
Dakle, može se reći da se parametri prosleđuju putem referencu, ali ponašanje je slično prosleđivanju po vrednosti za nepromenljive objekte.