On Wed, 27 Dec 2006 14:50:18 GMT, yomgui <[EMAIL PROTECTED]> wrote:
>I've tried this:
>
>import MyPackage
>if MyPackage.aVariable is None:
> MyPackage.aVariable = True
>
>but when I tried to access MyPackage.aVariable from another file
>(ie through an other import) the value is still None.
>
>
>how can I do this
>
>thanks
>
>yomgui
You have the right idea, but you must have overlooked something. Consider
this:
[EMAIL PROTECTED]:~$ cat > foo.py
a = None
[EMAIL PROTECTED]:~$ cat > bar.py
import foo
foo.a = 10
[EMAIL PROTECTED]:~$ cat > baz.py
import bar
import foo
print foo.a
[EMAIL PROTECTED]:~$ python baz.py
10
[EMAIL PROTECTED]:~$
However, think about avoiding this pattern. Instead of using globals
to track state, define a class, create an instance, and pass it to the
different functions and methods of your program so that they can inspect
and mutate it. If you use globals, you will end with code which is harder
to unit test and harder to re-use.
Jean-Paul
--
http://mail.python.org/mailman/listinfo/python-list