[Python] Dubbi su passaggio variabili a funzione
Marco Buttu
marcobuttu a nanoelectronic.net
Dom 23 Nov 2008 11:24:05 CET
On Sun, 2008-11-23 at 10:35 +0100, Massimo Capanni wrote:
> salve a tutti,
>
> c'e' qualcosa che mi sfugge nel passaggio dei parametri alle funzioni.
> Se ho capito bene le variabili alle funzioni sono passate per valore,
> cioe'
> il corpo della funzione non modifica il valore della variabile
> passata, tuttavia
> per quale motivo se passo come parametro una lista ad esempio, questa
> e' come se fosse passata per riferimento?
Non mi pare sia cosi'. Tu passi sempre una reference all'oggetto, non
una copia. Se vuoi passare una copia devi farlo esplicitamente.
>>> def chlist(lst):
... print id(lst)
... lst.append(100)
... print lst, id(lst)
... lst = 50
... print lst, id(lst)
...
>>> lst = list()
>>> id(lst)
3084218188L
>>> chlist(lst)
3084218188
[100] 3084218188 # L'oggetto e' sempre lo stesso
50 135720172 # lst e' un altro oggetto
Ciao, Marco
Maggiori informazioni sulla lista
Python