Sobes.tech
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.