Junior
Kako se argumenti prosleđuju funkciji: po referenci ili po vrednosti?
sobes.tech АИ
Одговор од АИ
U Python-u argumenti se ne prosleđuju tačno putem referenci ili tačno putem vrednosti, već putem mehanizma koji se često naziva "pass by object reference" ili "pass by sharing".
Ovo znači sledeće:
- Kada se argument prosledi funkciji, prosleđuje se referenca na objekat.
- Ako je objekat promenljiv (npr. lista, rečnik), promene unutar funkcije će biti vidljive i izvan nje.
- Ako je objekat nepromenljiv (npr. broj, string, tuple), pokušaj njegove izmene unutar funkcije će kreirati novi objekat, a originalni objekat izvan funkcije će ostati nepromenjen.
Promenljivi objekti:
# Promenljiv objekat (lista)
def modify_list(items):
items.append(4)
my_list = [1, 2, 3]
modify_list(my_list)
# my_list sada je [1, 2, 3, 4]
Nepromenljivi objekti:
# Nepromenljiv objekat (broj)
def modify_number(num):
num = num + 1
my_number = 5
modify_number(my_number)
# my_number ostaje 5