[Python] Dubbi su passaggio variabili a funzione

Manlio Perillo manlio_perillo a libero.it
Dom 23 Nov 2008 16:48:19 CET


Enrico Franchi ha scritto:
> On Nov 23, 2008, at 11:35 AM, Lawrence Oluyede wrote:
> 
>> Viene sempre e comunque passato l'oggetto riferito dall'etichetta
>> (quindi non è definibile né come "call by value", né come "call by
>> reference"), in questo caso la lista è una variabile mutabile, indi
>> per cui puoi mutarla all'interno della funzione, come all'esterno.
> 
> Io direi che viene passato per valore il riferimento. :P
> 
> Sembra il modo per assurdo più semplice per definire il comportamento.
> 

Potrebbe però generare confusione.


def fun(a):
     a = 10

a = 7
fun(a)
print a


Con la semantica di passaggio per riferimento (almeno quella descritta 
in C++ o D) uno si aspetterebbe che il programma stampi a terminale 10 e 
non 7.



void fun(ref int a) {
     a = 10;
}

int main() {
     int a = 7;
     fun(a);

     printf("%d\n", a);

     return 0;
}



Ciao  Manlio Perillo


Maggiori informazioni sulla lista Python