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 #25547

  • Antoniov
  • Avatar di Antoniov
  • Online
  • Administrator
  • Messaggi: 1555
  • Ringraziamenti ricevuti 283
  • Karma: -115
Forse ho capito cosa vuoi:
class date():

   # sostituisce la funzione 'funzione'
    def __init__(self):
          self a='lunedì'
          self.b='martedì'

   print self.a, self.b

La funzione __init__ viene eseguita all'instanzazione della classe; quindi i valori di questa funzione sono disponibili per tute le funzione della classe (ricorda sempre self)
I valori sono disponibili anche fuori dalla classe (se guardi il primo esempio che ti ho riportato)
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 #25548

  • gigidn
  • Avatar di gigidn
  • Offline
  • Platinum Boarder
  • Messaggi: 1925
  • Ringraziamenti ricevuti 446
  • Karma: 22
@antoniov immagino non sia quello che voglia ottenere, in ogni caso è un bene richiamare il super quando sovrascrivi la __init__ altrimenti blocchi la catena.

Detto questo se proprio vogliam inorridire (questo codice seppur scritto da me è riprovevole) ecco qui un esempio di uso di funzione statica e variabili globali .... senza responsabilità alcuna :D :D :D
GLOBAL_A = GLOBAL_B = GLOBAL_C = None

def do_global(reference=None):
    global GLOBAL_A
    global GLOBAL_B
    global GLOBAL_C

    GLOBAL_A = reference.a if reference else 'A'
    GLOBAL_B = reference.b if reference else 'B'
    GLOBAL_C = reference.c if reference else 'C'

class DemoVariable(object):

    semistatic = 'Pippo'

    def FunzioneA(self):
        print GLOBAL_A
        print GLOBAL_B
        print GLOBAL_C

do_global()

tsc = DemoVariable()

tsc.FunzioneA()

la funzione do_global() puo' essere richiamata alla bisogna o messa nell'init del modulo.
@KTec
www.ktec.it
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

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

  • Antoniov
  • Avatar di Antoniov
  • Online
  • Administrator
  • Messaggi: 1555
  • Ringraziamenti ricevuti 283
  • Karma: -115
gigidn ha scritto:
@antoniov immagino non sia quello che voglia ottenere, in ogni caso è un bene richiamare il super quando sovrascrivi la __init__ altrimenti blocchi la catena.

Detto questo se proprio vogliam inorridire (questo codice seppur scritto da me è riprovevole) ecco qui un esempio di uso di funzione statica e variabili globali .... senza responsabilità alcuna :D :D :D
GLOBAL_A = GLOBAL_B = GLOBAL_C = None

def do_global(reference=None):
    global GLOBAL_A
    global GLOBAL_B
    global GLOBAL_C

    GLOBAL_A = reference.a if reference else 'A'
    GLOBAL_B = reference.b if reference else 'B'
    GLOBAL_C = reference.c if reference else 'C'

class DemoVariable(object):

    semistatic = 'Pippo'

    def FunzioneA(self):
        print GLOBAL_A
        print GLOBAL_B
        print GLOBAL_C

do_global()

tsc = DemoVariable()

tsc.FunzioneA()

la funzione do_global() puo' essere richiamata alla bisogna o messa nell'init del modulo.

@Gigidn le variabili global sono disponibili in python ma non sono sempre utilizzabili dentro Odoo.
Ad esempio i valori global non sono dipsonibili nel data entry (funzioni on_change) in quanto ad ogni attivazione della funzione, l'ORM di Odoo ricrea un nuovo ambiente.

Ho postato due esmepi per far capire il funzionamento delle variabili. Altra cosa è la soluzione in Odoo, visto che non è chiaramente espressa la problematica.
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 #25551

  • gigidn
  • Avatar di gigidn
  • Offline
  • Platinum Boarder
  • Messaggi: 1925
  • Ringraziamenti ricevuti 446
  • Karma: 22
Stiam tirando ad indovinare ... ma credo che ora wisdom abbia buona parte delle informazioni per poter procedere da se.

Per le variabili globali, buono a sapersi che hanno problemi con odoo ... grazie antoniov.

In ogni caso dal mio punto di vista le variabili globali son da evitare come la peste.
@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 #25553

  • wisdom
  • Avatar di wisdom
  • Offline
  • Senior Boarder
  • Messaggi: 71
  • Ringraziamenti ricevuti 1
  • Karma: 0
Graize mille a tutti appena applico i vostri suggerimenti vi informo sicuramente dell'esito
Buona serata
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
Tempo creazione pagina: 0.126 secondi

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

Protected by R Antispam