Python - VARIABLES "PUBLICAS"

 
Vista:

VARIABLES "PUBLICAS"

Publicado por Alberto G.A. (6 intervenciones) el 24/07/2007 14:17:48
Muy Buenas a todos:

Este es mi primer POST en este foro, estoy empezando con Python. Tras echar un vistazo de algo más de 6 meses al panorama de lenguajes de programación finalmente me decidí por Python.

Para poneros en antecedentes os comentaré que estoy desarrollando una aplicación (de escritorio, no es web) bastante grande (muy grande) y aunque todavía estoy empezando necesito dejar ciertas cosas "muy abiertas" para avanzar según lo planeado.

Uno de los primeros problemas que se me ha presentado y no he conseguido solucionar es el siguiente:

Mi aplicación tendrá un módulo principal de carga que entre otras cosas se encargará de leer una serie de parámetros de configuración (repartidos entre un fichero .ini y algunos otros almacenados en un servidor MySQL). Como el acceso a dichos parámetros no será muy rápido (y es muy improbable que dichos parámetros cambien) habí apensado en crear algún tipo de variable u objeto que los cargue una vez y que después pueda ser consultado fácil y rápidamente.

Mi problema es que no sé como crear ese tipo de variable/objeto que me permita acceder a el desde cualquier parte/módulo del programa, tengo más o menos claro como acceder desde entro de una función/clase a una variable externa, mi problema es que no se como montármelo para conseguir que desde un fichero .py pueda acceder a las variables creadas/gestionadas desde otro .py.

Gracias y saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:VARIABLES

Publicado por Cyrus (54 intervenciones) el 24/07/2007 20:27:30
Buenas, yo hace poco hice algo parecido, leía la configuracion de un fichero xml, pero el resultado era el mismo.

Lo que hice fue crear un modulo config.py, en el que habia una serie de funcines, una para leer el fichero, otra para generarlo, etc

La cuestion es que cuando te haga falta, importas el modulo
import config

Y luego llamas a la funcion que lea el fichero:
configuracion=config.leerfichero()

por ejemplo, y la funcion leerfichero lo que hace es leer los datos de donde sea, y luego devuelve un diccionario, por ejemplo.
return dict_config

Y si esto a sido llamado desde una clase, pues se usa self.configuracion ...... para que se pueda llamar desde otros sitios.

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VARIABLES

Publicado por Alberto G.A. (6 intervenciones) el 25/07/2007 10:05:54
Gracias por tu respuesta, pero no es ese mi problema, yo ya tengo un módulo que trabaja con .INI's y puedo acceder a configuraciones con en el. El problema es que hay una serie de variables a las que voy a necesitar acceder con cierta "regularidad" que no se encuentran en ese fichero sino en un servidor MySQL y si quisiese acceder a ellas (sin tenerlas precargadas que cargarlas en memoria) tendría que:

1) Leer el fichero INI para conocer los parámetros de acceso al servidor MySQL
2) Buscar en el servidor MySQL los valores que necesito.

(esto no me es viable por el tiempo que se consume)

Es por ello que aunque son variables (sé que los valores de dichas configuraciones no van a cambiar durante la ejecución del programa) y para acelerar el proceso me es "casi imprescindible" que se encuentren cargadas en memoria y pueda accder a ellas.

Gracias por tu respuesta, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VARIABLES

Publicado por Cyrus (54 intervenciones) el 25/07/2007 14:53:51
Pues si no he entendido mal, lo único que hay que hacer es.
- Abrir el fichero de configuración
- Conectarse a la base de datos
- Leer todo lo que se necesite
- Guardar todo en un diccionario, lista, array, etc.

Y cuando algo cambie, o cuando se cierre el programa, que deje los cambios en su sitio, o en la base de datos o en fichero.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VARIABLES

Publicado por Alberto G.A. (6 intervenciones) el 26/07/2007 16:30:28
Correcto, pero dada la siguiente estructura de aplicación

A.py
|__B.py
|__C.py
|__D.py

Si A es el cargador principal y B,C y D módulos adicionales, como conseguiría acceder al diccionario con esas configuraciones desde B, C y D teniendo en cuenta que dicho diccionario ha sido creado en A?

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar