Grazie mille... Sto usando semplicemente Microsoft Outlook, sotto windows 7. Non so perché si legge male, io leggo bene, cioè il lettore di schermo me la legge bene... Bho!
-----Messaggio originale----- Da: python-boun...@lists.python.it [mailto:python-boun...@lists.python.it] Per conto di Manlio Perillo Inviato: lunedì 13 maggio 2013 18:09 A: python@lists.python.it Oggetto: Re: [Python] Si possono creare variabili globali all'interno di una funzione che si trova a sua volta all'interno di un modulo? -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Il 13/05/2013 17:40, Germano Carella ha scritto: > [...] > def setglobals(name,value): > > Name è la stringa contenente il nome della variabile; value è il > suo valore > > If type(name) is str: > > Globals()[%s%name]=value > Sono curioso di sapere con che editor hai scritto questo codice... > Else: > > Raise TypeError(richiesta una stringa come primo argomento.) > > > > Ok, la funzione, come detto, si trova allinterno di un modulo. > > [...] > Poi mi viene in mente di scrivere: > > utils.nome > > germano > > Ops, allora lha creata! > > Naturalmente lha creata a livello di modulo. > globals restituisce il dizionario contenenti le variabili definite in quel modulo. Grazie al cielo, direi. > Purtroppo, se invece di importare il modulo scrivo > > From utils import setglobals > > Setglobals(nome,germano) > > Non dà errore, ma non crea la variabile. > Forse fai confusione. Stai comunque importando setglobals dal modulo utils, esattamente come prima. > > Ora la domanda: come faccio a impostare questa variabile nel > dizionario globale delle variabili globali? > Si può fare o sto dicendo scemenze? > Non si può fare, ma ci sono alternative. Ad esempio Python ha il dizionario speciale __builtins__, dove ci sono tutti gli identificatori built-in di Python; **abusandone** puoi fare qualcosa tipo: def setglobals(name, value): """Name è la stringa contenente il nome della variabile; value è il suo valore... """ if type(name) is str: __builtins__['%s' % name] = value else: raise TypeError("richiesta una stringa come primo argomento.") Ma rischi di confondere lo sfortunato che dovrà manutenere il codice in futuro. La soluzione più semplice e pulita è utilizzare un modulo dove memorizzare tutte le variabili a cui devono accedere gli altri moduli; esattamente come facevi nel primo esempio. > [...] Ciao Manlio -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAlGREAIACgkQscQJ24LbaUSlrACfatUKG/vl18uMoSi4N0xzd4z9 0LEAmwap+4VrAjwOHoHWwj5nzJtkZ5gE =YF7O -----END PGP SIGNATURE----- _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python