Package importing question

Daniel Dittmar daniel at dittmar.net
Tue Mar 9 21:16:20 CET 2004


Nick Patavalis wrote:
> so far, so good. Now try:
> 
>   >>> import p0.m0
>   dir(p0.m0)
>   ['__builtins__', '__doc__', '__file__', '__name__', 'f0', 'm1', 'sys']
> 
> fine also! But:
> 
>   >>> dir(p0)
>   ['__builtins__', '__doc__', '__file__', '__name__', '__path__',
>   'm0', 'm1']
> 
> Why on earth does 'm1' show-up there?? And since it does, why doesn't
> 'sys'??

Because all sub modules of package p0 get inserted into the module 
object for p0. This is so that a later import of p0.m1 won't 
import/execute it again. And you did import p0.m1 through the 'import 
m1' in m0.

Daniel



More information about the Python-list mailing list