Messing up with classes and their namespace

Jean-Michel Pichavant jeanmichel at
Fri Jun 5 07:23:23 EDT 2009

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 :
 >import foo
 >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 ?


More information about the Python-list mailing list