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 _______________________________________________ Python mailing list [email protected] http://lists.python.it/mailman/listinfo/python
