variables de otros archivos

Chema Cortes py en ch3m4.org
Mar Mar 7 13:46:07 CET 2006


Jean Carlos Rodrìguez escribió:

> Gracias por la ayuda Chema, pero tienes razon estoy
> haciendo lio con las variables globales y las
> instancias, porque el valor que necesito se encuentra
> definido dentro de una función de la clase y pense en
> colocarlo global, pero no me funciona???


Lo que te intentaba decir es que tienes que diferenciar mejor los
elementos que intervienen en el programa:

- Variables globales: para acceder a ellas tienes que apoyarte en el
nombre del módulo donde están definidas (yo veo que lo hagas)

- Clases: son sólo definiciones y no almacenan datos, a no ser que
quieras que todas las instancias de una misma clase compartan sus
atributos (pero eso déjalo para cuando controles un poco más)

- Instancias: son objetos que están por la memoria, creados en algún
momento de la ejecución. El acceso a una instancia se hace con una
"ruta" con la que navegas a través de las referencias conocidas.


Inicialmente estás intentando colocar el dato en una variable global,
pero no guardas ningún dato en variables globales. El dato lo estás
guardando en un atributo de una instancia, pero no se puede acceder a él
a través de la definición de clase. Lo normal es que, cuando creas una
instancia, guardes una referencia en algún lugar accesible (como
variable global, si quieres) o que pases la instancia como argumento a
algún método de otra clase.

Ya sé que suena complicado, pero es que es muy largo de explicar bien a
través de correos. Lo mejor que puedes hacer es estudiar ejemplos.
Python viene con algunos ejemplos que son bastante ilustrativos. Si no
los tienes instalados, bájate el código fuente completo de python y
busca en la carpeta de "Demos".

Tan sólo un consejo más: prueba a colocar todo en un único fichero, sin
módulos. Si lo consigues, trocear el código en módulos puede ser más fácil.


> pd: si tienen un buen tutorial de clases e instancias
> se los sabria agradecer, porque me he leido varios de
> la red y quedo igual

A mí me encanta www.cafepy.com . No es precisamente un tutorial de
introducción, pero resulta bastante esclarecedor:

http://www.cafepy.com/article/python_types_and_objects/contents.html
http://www.cafepy.com/article/python_attributes_and_methods/contents.html




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