[PIPython] passaggio di variabili tra metodi

Stefano Maniero smaniero
Mar 4 Gen 2005 22:07:35 CET


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




More information about the Python mailing list