Hello list,

Recently someone asked me this question, to which I could not give an answer. I'm hoping for some insight, or a manual page. What follows is python 2.6.

The problem is with the difference between

from test import *

and

import test

First things first. Here's the code to test.py:

a = 3
def f():
   global a
   return a

Now, in the interactive interpreter:

>>> from test import *
>>> a
3
>>> f()
3
>>> a = 4
>>> f()
3

in a second session:

>>> import test
>>> test.a
3
>>> test.f()
3
>>> test.a = 4
>>> test.f()
4

Somehow, in the first session I cannot modify the global variable a returned from f, but in the second session I can. To my eye, the only difference seems to be a namespace. Can anyone shine some light on this matter?

Thanks,
Stefaan.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to