Hi,

I'm new to Python and I've found something in its interpreter that I 
don't quite understand, and I don't really know how to correctly 
formulate a search query. Here's the question.

If we have a file module_a.py with the following content:

|       #!/usr/bin/env python
|
|       value = 'initial'
|
|       def change_value():
|               global value
|               value = 'changed'

and a file module_b.py:

|       #!/usr/bin/env python
|
|       from module_a import value, change_value
|
|       change_value()
|       print value
        
Then, if we run module_b.py, it will print "initial". However, if one 
adds to the end of module_a.py this line:

|       change_value()

The script module_b.py will print "changed".

It seems that in the first case change_value() called in module_b.py 
ignores the global statement. Is it so? Why? What happens in the second 
case? I really don't get it.

Thanks!

Cheers,
        Valia

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to