Sobes.tech
Junior

Come vengono passati gli argomenti a una funzione: per riferimento o per valore?

sobes.tech AI

Risposta dell'AI

In Python, gli argomenti non vengono passati esattamente per riferimento né esattamente per valore, ma tramite un meccanismo che spesso viene chiamato "pass by object reference" o "pass by sharing".

Ciò significa quanto segue:

  • Quando si passa un argomento a una funzione, si passa un riferimento all'oggetto.
  • Se l'oggetto è mutabile (ad esempio, una lista, un dizionario), le modifiche all'interno della funzione saranno visibili anche all'esterno.
  • Se l'oggetto è immutabile (ad esempio, un numero, una stringa, una tupla), cercando di modificarlo all'interno della funzione verrà creato un nuovo oggetto, e l'oggetto originale all'esterno della funzione rimarrà invariato.

Oggetti mutabili:

# Oggetto mutabile (lista)
def modify_list(items):
    items.append(4)

my_list = [1, 2, 3]
modify_list(my_list)
# my_list ora è [1, 2, 3, 4]

Oggetti immutabili:

# Oggetto immutabile (numero)
def modify_number(num):
    num = num + 1

my_number = 5
modify_number(my_number)
# my_number rimane 5