[Python-es] namespaces y variables globales

Ramiro rmrsndvl en yahoo.com.ar
Jue Nov 4 19:26:17 CET 2010


>2010/11/3 Oswaldo Hernández:
>>
>> Has probado a insertar la variable directamente en el diccionario >globals?:
>>
>> if not options.number:
>>    globals()["a"] = 1
>> else:
>>    globals()["a"] = options.number
>
>Gracias a todos por vuestros comentarios y sugerencias. Finalmente >he
>optado por la solución que propone Oswaldo. No sé si esta solución >es
>muy ortodoxa, pero me funciona perfectamente.


El problema que le veo es que queda muy escondida, si es una variable global tendría que quedar bien en claro eso  por si otra persona, o vos mismo dentro de un tiempo, lee el programa.

Yo lo haría al modo de Alvaro Manrique como te dijo en un mensaje. Y si tendría que usar esa variable en varios módulos distintos (varios archivos .py), crearía un módulo con todas las variables globales y luego para leerlas o asignarles valores me referiría a esas variables con su nombre de módulo y todo.

Algo así:

archivo -> glob.py

--------------------------------------------------------------

var1 = 0

var2 = 23

  

def ff():

    print "dddddddddddddddddd"

--------------------------------------------------------------

archivo  ->  globales.py
-------------------------------------------------------
import glob

def mm():
    print glob.var2
    glob.var2 = 999
    print glob.var2
    glob.ff()

mm()
--------------------------------------------------------------

saludos



      
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20101104/b52bccbb/attachment.html>


Más información sobre la lista de distribución Python-es