Confused about namespaces

Diez B. Roggisch deets at nospam.web.de
Fri Nov 18 21:13:40 EST 2005


  > Am I understanding correctly that if you have a module foo importing wx
> and a module main importing both foo and wx there are actually two
> instances of wx created, one referenced to by (at top level) foo.wx.*
> and one wx.*? If this is indeed the case it isn't too good for the
> performance doing this importing of wx multiple times right?
>

No, they aren't two instances. The first import will evaluate the 
wx-module (there could be code in there executed upon importing it). All 
subsequent imports of that module will only bind the already imported 
module to the name.

So - the way to have one module be available in several other modules is 
to import them in each of them - causing actually close to none 
overhead, as the import statement is evaluated only once per file 
(unless you put it in a loop or something, but this still only would 
return the same reference.)

Regards,

Diez



More information about the Python-list mailing list