[Python] variabili "globali" tra più moduli.

Gollum1 gollum1.smeagol1 a gmail.com
Ven 17 Maggio 2013 23:52:47 CEST


Il 17 maggio 2013 23:36, Marco Beri <marcoberi a gmail.com> ha scritto:
> 2013/5/17 Gollum1 <gollum1.smeagol1 a gmail.com>
>>
>> Il 17 maggio 2013 23:26, Gollum1 <gollum1.smeagol1 a gmail.com> ha scritto:
>> > Il 17 maggio 2013 22:40, Marco Beri <marcoberi a gmail.com> ha scritto:
>> >>
>> >> A cosa ti servono queste variabili da variare dappertutto?
>> >
>> > in realtà non mi servono da variare dappertutto, le variabili vengono
>> > impostate solo in un luogo, da questo punto in poi possono essere
>> > considerate come delle costanti... però ho bisogno  che gli altri
>> > moduli accedano a queste "costanti".
>>
>> e se invece di esportare le variabili, esportassi una classe, che
>> contiene le variabili e i metodi per modificarle?
>> come posso fare poi perché l'oggetto che istanzio con questa classe
>> sia lo stesso per tutti i moduli?
>> non credo che la cosa cambi, rispetto all'esportazione diretta delle
>> varibili/costanti...
>>
>> questa è quella che indicano come la strada corretta su
>> http://stackoverflow.com, ma non mi è ben chiaro come utilizzare una
>> classe tra più moduli, facendo in modo che le variabili della classe
>> siano comuni alle diverse istanze della classe (una istanza per modulo
>> praticamente).
>
>
> Uhm... non vorrei fare troppo il precisino, ma in linea teorica dovresti
> trovare il modo di non dover fare questa cosa.
>
> Puoi entrare più in dettaglio su una di queste variabili? Magari troviamo il
> modo di girarci intorno.

per la maggiore dovrebbe trattarsi di valori di variabili che vengono
impostate in funzione degli argomenti passati dalla riga di comando.

pensavo di utilizzare getops per gestire la riga di comando, questa
funzione si troverà in un modulo separato rispetto al programma
principale (un modulo con tutte le funzioni di utilità che ho
intenzione di utilizzare), e restituirà un vocabolario con coppie
chiave-valore dati o direttamente dal contenuto della riga di comando
o da elaborazioni e interazioni di dati della stessa.

per la maggiore questi dati saranno in sola lettura per tutti gli
altri moduli, ma ho bisogno che siano accessibili dal programma
principale e dai 3 moduli che vado a creare.

quello comune a tutti dovrebbe essere proprio questo modulo contenente
le utilities, quindi dovrebbe essere questo a contenere questa
variabile "globale".

un esempio esplicito, l'utente può indicare una path alternativo come
cache per l'elaborazione (nel caso che la /tmp di sistema non sia
sufficientemente grande, in quanto potrei trovarmi nella necessità di
dover trattare dati enormi, che non ci stanno nella /tmp, sopratutto
se questa è montata con parametri ristretti, mi riferisco all'uso di
tmpsf et simila).

questa directory di cache deve essere utilizzabile in diversi punti
dei diversi moduli, quindi deve essere accessibile da tutti i moduli
la sua definizione.

spero di essere stato più chiaro nell'esporre le mie esigenze.
Grazie dell'aiuto.


Byez
--
Gollum1
Tesssssoro, dov'é il mio tessssoro...


Maggiori informazioni sulla lista Python