pregunta sobre variables globales

Javi javi en bertayjavi.com
Mar Sep 25 22:04:50 CEST 2007


Gracias por tu respuesta  me ha sido de gran ayuda.

Un saludo
----- Original Message ----- 
From: "Gabriel Genellina" <gagsl-py2 en yahoo.com.ar>
To: <python-es en aditel.org>
Sent: Monday, September 24, 2007 8:48 PM
Subject: [Python-es] Re: pregunta sobre variables globales


En Thu, 20 Sep 2007 13:28:53 -0300, Javi <javi en bertayjavi.com> escribi�:

> hola , os voy a exponer cual es mi duda, me gustaria tener una variable
> a la que pueda acceder desde los diferentes modulos de mi programa y la
> verdad es que no se como hacerlo, lo intento con global pero no me
> funciona. Uso windows y python 2.5, wx y boa.

Vayamos por partes. Por un lado la cuestion de las globales que veo que no
lo tienes claro (leer el tutorial de Python creo que te vendria bien). En
Python las variables "globales" son generalmente "globales al modulo". Asi
que lo que hay que hacer es importar el modulo que las define. (No le
tengas miedo al import, que una vez que el modulo fue importado por
primera vez, simplemente devuelve una referencia al mismo modulo ya
cargado). Por ejemplo:

--- modulo1.py ---
mi_variable = 100

def lagarunfa():
   print "en modulo1, mi_variable=", mi_variable
--- fin modulo1.py ---

--- modulo2.py ---
import modulo1

def furufaifa():
   print "en modulo2, mi_variable=", modulo1.mi_variable
--- fin modulo2.py ---

--- main.py ---
import modulo1, modulo2
print "en main, mi_variable=", modulo1.mi_variable
modulo1.lagarunfa()
modulo2.furufaifa()
print "cambiando a 200"
modulo1.mi_variable = 200
print "en main, mi_variable=", modulo1.mi_variable
modulo1.lagarunfa()
modulo2.furufaifa()
--- fin main.py ---

Y fijate que no use "global" en ninguna parte - es para otra cosa.

> La cuestion es que tengo una mdiparentframe como pantalla principal
> donde se le asigna valores a esa variable y despues quiero poder acceder
> a ella desde las diferentes pantallas  mdichildframe, pero no se me
> ocurre. Si alguine pudiera ayudarme le estari amuy agradecido..

Pero en este caso deberias olvidarte de todo lo que dije arriba :)
No hay que usar variables globales. Simplemente que sea un atributo de la
MDIParentFrame (no del modulo, sino del objeto frame). Todas las
MDIChildFrame pueden acceder a ella usando self.GetParent()

-- 
Gabriel Genellina




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


_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


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