Eric Hanchrow <[EMAIL PROTECTED]> writes: > (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.
import system from system import thing is the same as: import system thing = system.thing Do you expect system.thing to be rebound when you rebind thing? HTH -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list