Questo sito utilizza cookie per le proprie funzionalità e per inviarti pubblicità e servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.

Accedendo al link http://www.odoo-italia.org/index.php/home/cookie-policy puoi leggere in dettaglio le modalità di trattamento dei cookie da parte dell'Associazione Odoo Italia.

Benvenuto, Ospite
Nome utente: Password: Ricordami
  • Pagina:
  • 1
  • 2

ARGOMENTO: Variabile da Funzione a Classe

Variabile da Funzione a Classe 2 Anni 4 Mesi fa #25540

  • wisdom
  • Avatar di wisdom
  • Offline
  • Senior Boarder
  • Messaggi: 71
  • Ringraziamenti ricevuti 1
  • Karma: 0
Salve

qualcuno può darmi un consiglio su come leggere in una classe una variabile impostata in una funzione ?

Grazie
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Variabile da Funzione a Classe 2 Anni 4 Mesi fa #25542

  • Antoniov
  • Avatar di Antoniov
  • Online
  • Administrator
  • Messaggi: 1555
  • Ringraziamenti ricevuti 283
  • Karma: -115
Presumo che il codice sia qualcoso tipo
class MyClass:

    def my_function(self):
           self.valueA = 'A'
           valueB = 'B'

Se vuoi il valore di valueA
instance = MyClass()
print instance.valueA

In alcuni casi
print MyClass.valueA

Invece non puoi mai conoscere il valore di ValueB perchè è locale alla funzione
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo. - Presidente eletto dell'associazione
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Variabile da Funzione a Classe 2 Anni 4 Mesi fa #25543

  • gigidn
  • Avatar di gigidn
  • Offline
  • Platinum Boarder
  • Messaggi: 1925
  • Ringraziamenti ricevuti 446
  • Karma: 22
Magari se spieghi meglio forse ti si puo' dare una mano ....

Detta cosi' non è possibile. Le variabili all'interno delle funzioni hanno scope la funzione e non sono visibili al di fuori della funzione stessa.

In ogni modo spero che questo esempio chiarisca ....
class DemoVariable(object):

    semistatic = 'Pippo'

    def FunzioneA(self):

        a = 1
        self.b = 2

        print 'A:',a,'B:',self.b
        print 'Non Sovrascritta:',self.semistatic
        self.semistatic = 'Pluto'
        print 'Se sovrascritta:',self.semistatic
        print 'Dalla Classe:',DemoVariable.semistatic

    def FunzioeneB(self):

        if hasattr(self, 'a'):
            print 'Valore di A:',self.a
        else:
            print 'Nessun Valore per A'

        if hasattr(self, 'b'):
            print 'Valore di B:',self.b
        else:
            print 'Nessun Valore pr B'

tsc = DemoVariable()

tsc.FunzioeneB()
tsc.FunzioneA()
tsc.FunzioeneB()

EDIT GigiDN: Aggiornato esempio con variabile di classe.
@KTec
www.ktec.it
Ultima modifica: 2 Anni 4 Mesi fa da gigidn.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Variabile da Funzione a Classe 2 Anni 4 Mesi fa #25544

  • wisdom
  • Avatar di wisdom
  • Offline
  • Senior Boarder
  • Messaggi: 71
  • Ringraziamenti ricevuti 1
  • Karma: 0
Ciao Gigi

in effetti la mia funzione è al di fuori della classe, cioà nella funzione valorizzo delle variabili che poi devo leggere nella classe

esempio

def funzione(self)
a = self.lunedì
b= self.martedi
c = self.mercoledi


class date(model.Model)
print a, b, c


e devo vedere il contenuto impostato nella funzione


Grazie
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Variabile da Funzione a Classe 2 Anni 4 Mesi fa #25545

  • Antoniov
  • Avatar di Antoniov
  • Online
  • Administrator
  • Messaggi: 1555
  • Ringraziamenti ricevuti 283
  • Karma: -115
wisdom ha scritto:
Ciao Gigi

in effetti la mia funzione è al di fuori della classe, cioà nella funzione valorizzo delle variabili che poi devo leggere nella classe

esempio

def funzione(self)
a = self.lunedì
b= self.martedi
c = self.mercoledi


class date(model.Model)
print a, b, c


e devo vedere il contenuto impostato nella funzione


Grazie
Leggi il mio esempio
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo. - Presidente eletto dell'associazione
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Variabile da Funzione a Classe 2 Anni 4 Mesi fa #25546

  • gigidn
  • Avatar di gigidn
  • Offline
  • Platinum Boarder
  • Messaggi: 1925
  • Ringraziamenti ricevuti 446
  • Karma: 22
wisdom ha scritto:
Ciao Gigi

in effetti la mia funzione è al di fuori della classe, cioà nella funzione valorizzo delle variabili che poi devo leggere nella classe

esempio

def funzione(self)
a = self.lunedì
b= self.martedi
c = self.mercoledi


class date(model.Model)
print a, b, c


e devo vedere il contenuto impostato nella funzione


Grazie

Cosi' come hai scritto non ha senso .....

la funzione "funzione" per ever come parametro "self", ovvero l'istanza di una classe deve essere una funzione definita in una classe, diversamente è una funzione globale con un parametro arbitrario chiamato self.

Affinchè la funzione possa manipolare l'oggetto istanza di "date" deve aver accesso a tale istanza ....

Ti consiglio prima di sperimentare con codice python semplice, non odoo, e poi quando avrai compreso il meccanismo lo applichi al tuo caso specifico in odoo.

Sta di fatto che a meno di casi molto ma molto particolari quello che vuoi fare è un po' sporco, meglio passare il valore alla funzione che richiami su "date" o al costruttore.
@KTec
www.ktec.it
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
Tempo creazione pagina: 0.153 secondi

Odoo Italia Associazione - C.F: 94200470485 - Sede: Viale dei Cadorna, 83 - Firenze - Italy

Protected by R Antispam