Sobes.tech
Middle

Parametrii în Python sunt transmişi prin valoare sau prin referință?

sobes.tech AI

Răspuns de la AI

În Python, parametrii sunt transmiși prin referință la obiect (pass-by-object-reference). Aceasta înseamnă că funcția primește o referință la obiect, nu o copie a valorii. Totuși, comportamentul depinde de mutabilitatea obiectului:

  • Pentru obiecte mutabile (de exemplu, liste, dicționare), modificările din interiorul funcției se reflectă asupra obiectului original.
  • Pentru obiecte imutabile (de exemplu, numere, șiruri, tupluri), orice încercare de a modifica obiectul din interiorul funcției creează un nou obiect, păstrând originalul neschimbat.

Exemplu:

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

Prin urmare, se poate spune că parametrii sunt transmiși prin referință, dar comportamentul este similar cu transmiterea prin valoare pentru obiecte imutabile.