Pasar variables globales...

Chema Cortes py en ls-l.org
Mie Mar 9 09:19:42 CET 2005


Ariel Nardelli escribió:
> Chema, lo mando por aca porque tu cuenta personal me rebota 
> constantemente...

Cambio tanto de buzón de correo que ya no recuerdo desde dónde lo envié. :-P

> Tengo un formularo mdi y ahi adentro se ejecutan todas las ventanas del
> sistema, 
 > ...

Por lo que entiendo, tienes una parte "invariante" de la aplicación que 
se encarga de validar al usuario antes de abrir el subprograma (el 
formulario). Aunque no lo aclaras, intuyo que lo que quieres es que 
todos los formularios usen el mismo usuario y clave que han sido 
validados en el inicio de la aplicación.

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

Observa que si la instancia (self) que estás pasando tuviera como 
atributos los valores del usuario y clave, la clase podría acceder a 
estos valores sin mayor problema. ¿Ves algún problema en éllo?


> 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...

En la documentación de PythonCard se explican técnicas para crear hilos 
de ejecución con wxPython. Como dices, es un tema que resulta necesario 
para mejorar la respuesta interactiva de un interface gráfico.


>> 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...

No entiendo porqué no puedes "separar" las sesiones. Se da el mismo 
problema en una aplicación web, y sin embargo se soluciona sin problemas.

A cada sesión le das un identificador único que puedes crear de muchas 
formas. Normalmente, es una combinación de la hora (en ticks de reloj) y 
un valor aleatorio, de modo que sea muy improbable que se pueda repetir. 
Con este identificador de sesión puedes relacionar una sesión con un 
espacios de nombres almacenado en una base de datos o en ficheros 
externos (como si fueran "cookies").




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