E
Eric Hanchrow
(This is with Python 2.5.2, on Ubuntu Hardy, if it matters.)
This seems so basic that I'm surprised that I didn't find anything
about it in the FAQ. (Yes, I am fairly new to Python.)
Here are three tiny files:
==== mut.py ====
import system
from system import thing
def doit():
print " thing is", thing
def do_it_slightly_differently():
print "system.thing is", system.thing
==== system.py ====
thing = "I am the original thing!!"
==== test.py ====
import mut
mut.doit()
mut.do_it_slightly_differently()
import system
system.thing = "The new improved thing"
mut.doit()
mut.do_it_slightly_differently()
When I run "python test.py", I see
thing is I am the original thing!!
system.thing is I am the original thing!!
thing is I am the original thing!!
system.thing is The new improved thing
What surprises me is that the assignment to "system.thing" in test.py
only seems to affect the use of "system.thing" in mut.py, and not
affect the use of just plain "thing" in that same file. I would have
expected my assignment to have affected both, or perhaps neither.
I have no idea why these two differ. Can someone explain?
--
Rarely do we find men who willingly engage in hard, solid
thinking. There is an almost universal quest for easy answers
and half-baked solutions. Nothing pains some people more
than having to think.
-- Martin Luther King, Jr.
from "Strength to Love," 1963.
This seems so basic that I'm surprised that I didn't find anything
about it in the FAQ. (Yes, I am fairly new to Python.)
Here are three tiny files:
==== mut.py ====
import system
from system import thing
def doit():
print " thing is", thing
def do_it_slightly_differently():
print "system.thing is", system.thing
==== system.py ====
thing = "I am the original thing!!"
==== test.py ====
import mut
mut.doit()
mut.do_it_slightly_differently()
import system
system.thing = "The new improved thing"
mut.doit()
mut.do_it_slightly_differently()
When I run "python test.py", I see
thing is I am the original thing!!
system.thing is I am the original thing!!
thing is I am the original thing!!
system.thing is The new improved thing
What surprises me is that the assignment to "system.thing" in test.py
only seems to affect the use of "system.thing" in mut.py, and not
affect the use of just plain "thing" in that same file. I would have
expected my assignment to have affected both, or perhaps neither.
I have no idea why these two differ. Can someone explain?
--
Rarely do we find men who willingly engage in hard, solid
thinking. There is an almost universal quest for easy answers
and half-baked solutions. Nothing pains some people more
than having to think.
-- Martin Luther King, Jr.
from "Strength to Love," 1963.