"Make Twilight" <ph4...@gmail.com> wrote
I am confuse on the text above:
"If you use the 'from import' system, changes made to attrs of the
imported module /won't/ be seen by any other module that imported it.
If you do just an 'import' on a module (or 'import ... as ...'), then
changes made to attrs on the imported module /will /be seen by othe
modules that import it as well.  I hope that is somewhat clear. ;)"

I had tried to simulate this situation:
------------ Module a-----------
#!usr/bin/env ptyhon
#Module  a.py
name = "a::name"

------------Module b------------
#usr/bin/env python
#Module  b.py
form a import *

while Ture:   # True?
   blah = rawinput("input something:")
   print a.name

This should not work because you have not imported "a" only "name" from a.
This should therefore say

print name


------------Module c------------
#usr/bin/env python
#Module c.py
import a

while Ture:
   blah = rawinput("input something:")
   print a.name

But this is OK.

when i excuted b.py,c.py and modified the attr name = "a::newname",but b.py
and c.py were still output "a::name".

How did you execute them? There is nothing to change the attributes
here so how did you change them? If you altered the source code of
a after the imports were run then the changes will not be seen.

what's the problem?
does it the right way python  takes?

I'm not sure there is a problem. It depends on how you are conducting
the test and what you expect the answer to be.

Alan G.

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to