Pasar variables globales...

Ariel Nardelli pan_python en yahoo.com.ar
Mie Mar 9 07:53:28 CET 2005


Chema, lo mando por aca porque tu cuenta personal me rebota 
constantemente...


Chema Cortes wrote:

> Quoting Ariel Nardelli <pan_python en yahoo.com.ar>:
>
>> La pregunta del millon es :) existe algun otro metodo para poder tener
>> una variable con un numero y que este disponible siembre en todo el
>> programa?
>>
>> Considero que pasarla como variable global es la mejor manera, pero les
>> pregunto si es que alguien tiene o sabe alguna otra forma mejor para
>> hacer lo que quiero hacer....
>
>
> Por concretar mejor, lo que quieres es que un objeto "exista" más allá 
> de la
> terminación del programa que lo define. Es lo que se conoce por 
> "persistencia"
> del objeto.

Exacto, que este "vivo" durante todo el programa y en todas las
instancias...

>
> La persistencia la puedes conseguir de muchas formas, por lo que 
> deberías ser
> más explícito con el modo de "encadenar" los programas. Si todos los 
> programas
> son ejecutado desde el mismo entorno de ejecución, entonces todos ellos
> compartirán la misma memoria y una variable global podría ser la forma 
> más
> directa.

mmmm...
Tengo un formularo mdi y ahi adentro se ejecutan todas las ventanas del
sistema, basicamente con este codigo...

    def etconafi02(self, event):
        from estadisticas import etconafi02
        win = etconafi02(self, -1, "No hace Nada")
        win.CenterOnParent()
        win.Show(true)

Esto esta dentro del formularo mdi y segun las opciones de menu llama a
cada funcion que tiene dentro esto...

Yo tengo un archivo .py que dentro tengo 2 clases, una que es la que se
ejecuta al principio que "levanta" la clave y una vez que la clave es
correcta llama a la otra clase que es el formulario mdi y tiene todas
las opciones de menu...

A cada menu hay una funcion como la de arriba, y la idea es al llamar a
una opcion en el programa que es llamado (en el caso de arriba seria
etconafi02) ahi tomar la clave del usuario mas la opcion del menu y ahi
ver si esta autorizado a usar esa parte del sistema....
Complicado pero me va a permitir que los usuarios tengan acceso a las
distintas partes segun sea los accesos declarados, por ejemplo decir tal
usuario no puede acceder a tal programa :) y asi con cada programa del
sistema.

Bueno esa es en esencia la idea :)

>
> También podrías tener varios hilos de ejecución, de modo que uno de 
> los hilos
> fuera siempre el validador de todas las operaciones.

mmm Los hilos, son mis enemigos, hace tiempo que quiero ver
documentacion y forma de uso de los hilos porque se me presenta un gran
problema.
Tengo varios procesos que hacen mucha consulta sobre sql y el problema
que me surge es que las ventanas quedan "colgadas" esperando que termine
la ejecucion de los sql y se me cuelga todo, la idea era resolverlo con
hilos, que cada "formulario" del mdi tenga su propio hilo y entonces un
hilo ocupado no me bloquea todo el programa..., pero no logre todavia
aprender el tema de los hilos con wx.

Si vos tenes info o documentacion sobre este tema mandamela plis...

>
> Otra formas pasan desde utilizar ficheros para guardar el dato 
> serializado
> (pickle,cookie,etc) hasta utilizar alguna base de datos.

Esto no me serviria, porque el programa se ejecuta en el servidor y cada
programa puede tener andando varias sessiones de si misma :) y no tengo
forma de separar una session de otra asi que no puedo grabar un archivo
con la clave activa que se esta usando porque el mismo programa estaria
corriendo sobre distintos usuarios...

Como siempre, Chema GRACIAS!!! siempre salvandome vos con tus
explicaciones!!!!

Ariel

-- 
Saludos
Panflin

NO al limite de adsl de TELECOM
Firma YA el petitorio NACIONAL para que TELECOM no nos estafe con el
limite del ADSL, la direccion es:
http://peticionbandaancha.com/

www.reconquista.com.ar




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