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.