-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Il 20/11/2011 10:46, linedicons...@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----- _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python