[Python] Si possono creare variabili globali all'interno di una funzione che si trova a sua volta all'interno di un modulo?

Germano Carella germano.carella a gmail.com
Lun 13 Maggio 2013 17:40:52 CEST


Ciao,

Arieccomi con un’altra domanda, che magari non troverà risposta, perché non
so nemmeno se l’ho posta bene.

Dunque, io sto scrivendo una funzione, all’interno di un modulo chiamato
utils, che dovrebbe impostare una variabile all’interno del dizionario delle
variabili globali.

La funzione si chiama setglobal ed è definita come segue:

 

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

Else:

  Raise TypeError(“richiesta una stringa come primo argomento.”)

 

Ok, la funzione, come detto, si trova all’interno di un modulo.

Dunque lancio la console di python e scrivo:

 

Import utils

Utils.setglobals(“nome”,”germano”)

Funziona, nessun errore.

Dunque, secondo la mia mente becera, dovrei aver creato una variabile
chiamata nome, con il valore “germano”.

Allora scrivo:

nome

Traceback… etc…

NameError: name ‘nome’ is not defined

 

Poi mi viene in mente di scrivere:

utils.nome

‘germano’

Ops, allora l’ha creata!

Naturalmente l’ha creata a livello di modulo.

Purtroppo, se invece di importare il modulo scrivo

>From utils import setglobals

Setglobals(“nome”,”germano”)

Non dà errore, ma non crea la variabile.

 

Ora la domanda: come faccio a impostare questa variabile nel dizionario
globale delle variabili globali? Si può fare o sto dicendo scemenze?

Scusate, non me ne vogliate, ancora non imparo bene, se avete qualche
documento in merito a questa problematica da suggerirmi, è il benvenuto.

Grazie.

 

-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130513/625f1afe/attachment.html>


Maggiori informazioni sulla lista Python