[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