Sobes.tech
Middle

I parametri in Python vengono passati per valore o per riferimento?

sobes.tech AI

Risposta dell'AI

In Python, i parametri vengono passati per riferimento all'oggetto (pass-by-object-reference). Ciò significa che la funzione riceve un riferimento all'oggetto, non una copia del valore. Tuttavia, il comportamento dipende dalla mutabilità dell'oggetto:

  • Per gli oggetti mutabili (ad esempio, liste, dizionari), le modifiche all'interno della funzione si riflettono sull'oggetto originale.
  • Per gli oggetti immutabili (ad esempio, numeri, stringhe, tuple), ogni tentativo di modificare l'oggetto all'interno della funzione crea un nuovo oggetto, lasciando invariato quello originale.

Esempio:

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

Pertanto, si può dire che i parametri vengono passati per riferimento, ma il comportamento è simile al passaggio per valore per gli oggetti immutabili.