Hello world,

I had recently a very nasty bug in my python application. The context is quite complex, but in the end the problem can be resume as follow:

2 files in the same directory :

lib.py:
>import foo
>foo.Foo.BOOM='lib'

foo.py:
>class Foo:
>    BOOM = 'Foooo'
>
>if __name__=='__main__':
>    import lib # I'm expecting BOOM to be set to 'lib'
>    print Foo.BOOM

I was expecting 'lib' as output, but I got 'Fooo'. I don't really understand what python mechanism I'm messing with but I have the feeling I've misunderstood a very basic concept about class, namespace or whatever import notion.

This is how I made it work:
>if __name__=='__main__':
>    from lib import Foo # make sure Foo comes from lib
>    print Foo.BOOM


I guess there is 2 different objects for the same class Foo. How I do I make both Foo objects the same object ?

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

Reply via email to