LinuxLudus: Python-domande varie

John Leach john.leach@syger.com
Gio 22 Maggio 2008 18:57:12 CEST


Ciao Valerio

Come vice presidente del PUG di Villafranca...

Valerio Pachera wrote:
>> #code=utf-8
>> var1= "ciao"
>> var2 = var1
>>
>> var1="hallo"
>> print var2
>>
>> #stampa "ciao" e non "hallo"
> 
>> No No No No No. Non c'e' un contrario, e' lo stesso sistema di prima.
> Due alias allo stesso oggetto, solo adesso l'oggetto e' una stringa.
> 
>> NO! L'assegnamento di variabile e il passaggio di argomenti nelle
> chiamate a funzione in python avvengono _sempre_ per riferimento.
> 
> Mmmmm...mi sconvolgete un po' le idee :)

Calma e sangue freddo. Io rispondeva al codice che hai citato, Federico 
al discorso dei parametri ad un metodo. (Ti sto dicendo che sei un 
cassinista ;-)

> Sul concetto che var1 č un istanza dell'oggetto stringa...ok , ci sono.

Dove per 'e'' io dicevo 'alias', ma va bene lo stesso.

> Che ho creato un alias di var1, cioč var2... ok ci sono.

Non proprio, riducendo l'equazione:
a = 3
b = a
*quindi b = 3*

anche var2 'e'' sempre quel istanza dell'oggetto stringa.

> Quello che non mi torna č che alla fine della fiera non posso
> modificare var1 se non con "var1".
> Questo vale sia per una stringa che un valore numerico.

Come diceva Andrea, nel prossimo messaggio (!) le stringhe sono (di 
solito) immutabili, quindi l'argomento si fa piu' spinoso perche' 
introduciamo troppi concetti...

> Provo a ragionarci meglio. Se avete capito il mio dubbio e avete un
> semplice esempio, scrivetemlo :)

Ok. Io sono (fino a prova contrario) un essere umano, con properita' di 
peso, altezza, gruppo sanguinio, ecc. Quindi

john = new essere_umano(peso 80, altezza 1.90, gruppo_sangiunio "A")
leach = john

Abbiamo due istanza di essere umano? No
Abbiamo due variabili che 'sono' quel istanza di essere umano? Si

john.gruppo_sanguinio = "O"

Indovina cosa viene scritto con questa riga

print leach.gruppo_sanguinio

(Risposta scritta su banconote di euro 50 accettati)

John


Maggiori informazioni sulla lista linuxludus