TG wrote: > if I import tom, it is supposed to load functions defined in > tom/__init__.py and make all the modules inside accessible through the > "dot" syntax. > > Therefore, this is supposed to work : > > ?> import tom > ?> help(tom.core) > > AttributeError: 'module' object has no attribute 'core' > > But if I use the baaaaad star syntax > > ?> from tom import * > ?> help(core) > > this will work.
No, it won't. Try again with a fresh interpreter (no prior imports) >>> from tom import * >>> core Traceback (most recent call last): File "<stdin>", line 1, in ? NameError: name 'core' is not defined >>> import tom >>> tom.core Traceback (most recent call last): File "<stdin>", line 1, in ? AttributeError: 'module' object has no attribute 'core' Only after an explicit import of tom.core... >>> from tom import core >>> del core >>> from tom import * >>> core <module 'tom.core' from 'tom/core.py'> is core added as an attribute to tom and will therefore be copied into the namespace of a module doing a star-import. Peter -- http://mail.python.org/mailman/listinfo/python-list