In this doc: https://docs.python.org/2/tutorial/modules.html
Near the top it states: Modules can import other modules. It is customary but not required to place all import statements at the beginning of a module (or script, for that matter). The imported module names are placed in the importing module’s global symbol table. When it refers to 'the imported module names' it sounds as though it is referring to the top level variables and functions in the imported module. This is not the case as far as I can tell. If bar.py has a function bar() and in foo.py I do: import bar bar() of course this fails. I have to do: import bar bar.bar() I know it would work if I went: from bar import * bar() but that feature is only introduced in the next section of the doc. It seems that if the statement read: the imported module's name (singular) is placed in the importing module's global symbol table. That it would be more accurate. -- https://mail.python.org/mailman/listinfo/python-list