[PIPython] passaggio di variabili tra metodi
Gianluca Trombetta
gianluca.trombetta
Mer 5 Gen 2005 09:15:17 CET
Io credo che Adriano voglia una cosa del genere: come hai scritto tu al punto due ma senza utilizzare il metodo setVars(). Infatti si può accedere alla variabile come attributo dell'oggetto direttamente così:
class Test:
def __init__(self):
self.a = 1
test_ist = Test()
print test_ist.a # stampa uno
test_ist.a += 2 # accesso diretto e modifica
print test_ist.a # stampa tre
Ad ogni modo concordo con Stefano che è meglio fare un metodo che setti e restituisca il valore delle variabili. Anche se in certi casi io trovo comodo utilizzare delle variabili pubbliche.
Ciao
Gianluca
-----Original Message-----
From: python-bounces a lists.python.it [mailto:python-bounces a lists.python.it] On Behalf Of Stefano Maniero
Sent: Tuesday, January 04, 2005 10:05 PM
To: Gli utilizzatori italiani di Python
Subject: Re: [PIPython] passaggio di variabili tra metodi
Definire una variabile globale è banale:
variabileGlobale = "valore"
class Test:
def stamvaVariabileGlobale(self):
print variabileGlobale
Ma solitamente le variabili globali raramente sono una buona scelta
implementativa.
Per le tue esigenze, se vuoi far ritornare ad una metodo di un oggetto dei
valori multipli puoi:
1) Ritonrare una lista, una tupla o un dizionario
class Test:
def ritornaLista(self):
return [ "valore1", "valore2", "valore3" ]
def ritornaTupla(self):
return [ "valore1", "valore2", "valore3" ]
def ritornaDizionario(self):
return { "var1" : "valore1", "var2" : "valore2" }
2) Oppure, utilizzando la programmazione ad oggetti, puoi definire le variabile
a livello di oggetto:
class Test:
def __init__(self,v1,v2):
self.var1 = v1
self.var2 = v2
def setVars(self, v1, v2):
self.var1 = v1
self.var2 = v2
def printValues(self):
print self.var1
print self.var2
test = test( "valore1", "valore2")
test.printValues()
test.setVars( "valore3", "valore4")
test.printValues()
Ciao
Stefano
Adriano Allora ha scritto:
> Il giorno 03/gen/05, alle 21:03, Stefano Maniero ha scritto:
>
>> E' un problema di "scope" della variabile luogo. Nel tuo caso la
>> variabile luogo
>> è locale alla funzione Gambe, perciò la variabile è visibile solamente
>> all'interno della funzione.
>
>
> come faccio a rendere una variabile globale? cioè, per ora questo metodo
> va benissimo,
> ma in futuro avrò bisogno di funzioni che generano più variabili con i
> loro valori in modo da
> passare valori e variabili ad altre funzioni.
>
> Inoltre, questo mi serve anche per variabili che possono o meno essere
> incrementate all'interno
> di funzioni che vengono ripetute (per ora, facendolo come speravo fosse
> ragionevole farlo,
> cioè passando le variabili, ad ogni iterazione riparte dai valori base).
>
> mi scuso se la domanda è imbecille, ma non ho trovato risposta nella
> manualistica a mia disposizione
> (compreso il manuale apogeo python2.1... GRRR, troppi euri e troppo
> poche informazioni...)
>
>
> grazie,
> ciao
>
> alladr
>
>
> |^|_|^|_|^| |^|_|^|_|^|
> | | | |
> | | | |
> | |*\_/*\_/*\_/*\_/*\_/* | |
> | |
> | |
> | |
> | http://www.e-allora.net |
> | |
> | |
> **************************************
>
> _______________________________________________
> La mailing list di python.it
> python a lists.python.it
> http://lists.python.it/cgi-bin/mailman/listinfo/python
_______________________________________________
La mailing list di python.it
python a lists.python.it
http://lists.python.it/cgi-bin/mailman/listinfo/python
More information about the Python
mailing list