Reputation: 51
let's say i have the following files:
a.py
glo_var = 0
def func():
global glo_var
glo_var = 5
print "A %d" % (glo_var)
b.py
from a import *
func()
print "B %d" % (glo_var)
If I ran b.py the output is:
A 5
B 0
My question is, how to import the global namespace so the output will be
A 5
B 5
I need to call the function in the module a.py from b.py so it will affect the globals.
I don't want to use regular "import" but to use it this way, "from a import *"
Upvotes: 4
Views: 1531
Reputation: 798536
Using from ... import ...
copies the references from the other module. Rebinding the value in the original causes it to have a new reference, breaking the link between a.glo_var
and b.glo_var
permanently. Either use a mutable object and mutate it, or reimport a.glo_var
whenever you need the updated value.
Upvotes: 4