Jesse Aldridge wrote:
> I have one module called foo.py
> ---------------------
> class Foo:
>     foo = None
> 
> def get_foo():
>     return Foo.foo
> 
> if __name__ == "__main__":
>     import bar
>     Foo.foo = "foo"
>     bar.go()
> ---------------------
> And another one called bar.py
> ---------------------
> import foo
> 
> def go():
>     assert foo.get_foo() == "foo"
> ----------------------
> When I run foo.py, the assertion in bar.py fails.  Why?

There are actually two get_foo()s, since foo.py is run (giving it the
name "__main__") and imported (giving it the name "foo"). You will
probably find that __main__.get_foo() == "foo".

regards
 Steve

-- 
Steve Holden        +1 571 484 6266   +1 800 494 3119
Holden Web LLC              http://www.holdenweb.com/

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

Reply via email to