When you do "Variables()" in your code, you're making a new instance
of that class that has no relation to any other instances. This is the
cause of your problem. To just reference a class, use just
"Variables". But that doesn't help in this case because var_dict is an
instance variable, not a class variable.
On Fri, Sep 26, 2008 at 7:01 PM, icarus <rs****@gmail.comwrote:
global_vars.py has the global variables
No it doesn't, it just defines a class. The class itself (but NOT its
instances) is a module-level global.
set_var.py changes one of the values on the global variables (don't
close it or terminate)
No, it just instanciates the Variables class and then manipulates the
instance, which is then GC-ed because it's no longer referenced
anywhere, even in set_var.
get_var.py retrieves the recently value changed (triggered right after
set_var.py above)
No, it creates an entirely new instance of Variables and then fetches
the value from that instance (which is still using the default value
because this new instance has never been modified).
>
Problem: get_var.py retrieves the old value, the built-in one but not
the recently changed value in set_var.py.
What am I doing wrong?
Try just making var_dict a module-level variable in global_vars.py and
then manipulating that rather than this unnecessary mucking about with
Variables(). Alternatively, make var_dict a *class* variable of
Variables by removing it from __init__ and just putting 'var_dict =
{"username": "original username"}' in the raw class body of Variables;
And then remove the parentheses after Variables as I mentioned in the
beginning.
Regards,
Chris
>
----global_vars.py---
#!/usr/bin/python
class Variables :
def __init__(self) :
self.var_dict = {"username": "original username"}
---set_var.py ---
#!/usr/bin/python
import time
import global_vars
global_vars.Variables().var_dict["username"] = "new username"
time.sleep(10) #give enough time to trigger get_var.py
---get_var.py ---
#!/usr/bin/python
import global_vars
print global_vars.Variables().var_dict.get("username")
--
http://mail.python.org/mailman/listinfo/python-list
--
Follow the path of the Iguana...
http://rebertia.com