[Python] Dubbi su passaggio variabili a funzione

Vito De Tullio zak.mc.kraken a libero.it
Lun 24 Nov 2008 19:20:36 CET


Massimo Capanni wrote:

> Parafrasando Franchi il "bigliettino" dentro
> la scatola e' stato riscritto e quindi dovrei puntare al nuovo oggetto
> linkato (nuovo indirizzo dell'oggetto), invece mi da none ...

in effetti è più semplice di quanto credi :)

def f(obj):
        obj = 'ciao'

a = []
f(a)
print a

guarda queste 4 righe :)

ho una funzione f che ha in input un certo oggetto, passato per "etichetta",
sotto il nome obj.
tuttavia l'unica cosa che la funzione fa è prendere l'etichetta
obj, "staccarla" dal suo vecchio oggetto (che *non* è stato modificato di
una virgola!) e attaccarla ad un secondo oggetto di tipo str ('ciao').

ora invochiamola.
creiamo un oggetto di tipo list ([]), e rendiamolo raggiungibile tramite
l'etichetta a
invochiamo f(a): ovviamente essendoci un passaggio per etichetta verrà
copiata quest'ultima; internamente f, quindi, modificherà una copia
dell'etichetta, non a!
tant'è che se proviamo a stampare a, mostrerà una bella lista vuota :)


-- 
By ZeD



Maggiori informazioni sulla lista Python