global variables or inheritence
Laurent POINTAL
pointal at lure.u-psud.fr
Thu Apr 27 11:04:37 EDT 2000
On Wed, 26 Apr 2000 19:37:40 GMT, Thomas Rasmussen
<simpsons at kom.auc.dk> wrote:
>: Hi
>:
>: I have quite a big problem. I have two different files, where I in one
>: file want to declare a variable and then in the other file be able to
>: access and use this variable (no need to change it), but I just can't
>: seem to get it to work... Is there any nice way of doing this easily?
>: I have tried the global var but this doesn't seem to work.
>:
>: Anyone got a good idea?
Be careful that when you write "from module import *", you get
duplication of the imported module public names into your namespace,
with their current referenced objects.
If one module change(*) the object which is referenced in its
namespace, the other module dont see the modification.
Ex.
#mod1
var = 12
#mod2
from mod1 import *
# Here you get var with value 12.
var = 18
# Here you have var with value 18 and mod1 has var with value 12.
To avoid this problem, you must access globals by their modules names.
Ex.
#mod2
import mod1
mod1.var = 18
# And its ok.
Here, to force the use of module prefix, we have adopted the rule to
all times use a _ before globals names, so that they MUST be accessed
by their modules names.
A+
Laurent.
(*) Change the object instance!!! If you have a 'shared' list between
modules, you can do operations on it and all modules ill see them...
except the bad module which create a new list instance and assign it
to its namespace'name.
---
Laurent POINTAL - CNRS/LURE - Service Informatique Experiences
Tel/fax: 01 64 46 82 80 / 01 64 46 41 48
email : pointal at lure.u-psud.fr ou lpointal at planete.net
More information about the Python-list
mailing list