[Python] Classi e loro interazioni con variabili

Manlio Perillo manlio.perillo a gmail.com
Dom 20 Nov 2011 16:59:40 CET


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Il 20/11/2011 10:46, linediconsine a gmail.com ha scritto:
> Ciao a tutti!
> 
> Ho ripreso python da poco e per mettermi in gioco ho creato un
> progetto con 3 moduli i dubbi  sono relativi a :
> 
> - Condividisione variabili
> Vorrei una variabile globale per tutti i 3 moduli, da quel che ho
> capito le variabili del main rimangono nel main.py (salvo che sbagli
> io la loro dichiarazione) e non sono visibili come pubbliche a tutti i
> moduli.
> 

Le variabili vanno a finire nel dizionario del modulo dove sono
definite, e chiunque può accedervi, dopo aver importato il dato modulo.

In Python al modulo che viene eseguito viene dato il nome speciale
"__main__".

Quindi se il tuo main.py contiene, ad esempio:

>>> PARAM_1 = 10
>>> PARAM_N = 20

>>> import tuoi_moduli


allora nei tuoi moduli puoi fare:

>>> from __main__ import PARAM_1, PARAM_N

se sei curioso puoi anche fare:

>>> from __main__ import __dict
>>>
>>> print __dict__


ATTENZIONE:
non fare una cosa del genere, perchè vai incontro al problema degli
import incrociati.
__main__ importa i tuoi moduli, e questi a loro volta importano __main__
(nell'esempio infatti ho *prima* definito le variabili e poi importato).

> Quello che vorrei fare è mettere i dati in un file(modulo) separato
> visibile e utilizzabile da tutti i moduli.

E perchè non lo fai? ;-).
E' la cosa giusta da fare.

> [...]


Ciao  Manlio
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk7JI+wACgkQscQJ24LbaUQdqgCfTrm+Q2W42zjX72GbhEn78ijc
bYcAn1THuQrUzpy/5RHauAHkglCzdmsS
=zFFc
-----END PGP SIGNATURE-----


Maggiori informazioni sulla lista Python