Josh Rosenberg added the comment:

Why is this unexpected? Per the docs, the process is:

    find the module specified in the from clause, loading and initializing it 
if necessary;
    for each of the identifiers specified in the import clauses:
        check if the imported module has an attribute by that name
***     if not, attempt to import a submodule with that name and then check the 
imported module again for that attribute
        if the attribute is not found, ImportError is raised.
        otherwise, a reference to that value is stored in the local namespace, 
using the name in the as clause if it is present, otherwise using the attribute 
name

The *** is next to where it ends up in the tree; it found the l007 package, 
determined it had no attribute named l009, determined it did have a module of 
that name, and imported it. What were you expecting? For the record, it would 
be nice if you'd used a name that didn't begin with a lowercase L; it makes it 
look like the module is named entirely with digits (which would be illegal).

----------
nosy: +josh.r

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28745>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to